Posts Tagged ‘mysql’

Меняем расположение директории с базами MySQL на Ubuntu Server

Воскресенье, Январь 20th, 2013

По мотивам моих вчерашних изысканий. Понадобилось сделать новую виртуалку на Amazon. Данные было решено хранить на отдельном EBS-разделе, чтобы предотвратить их потерю в случае отключения виртуалки и для бекапов через снепшоты. В качестве OS была выбрана Ubuntu Server 12.04 LTS. Что в итоге привело к небольшим сложностям при изменении директории с базами MySQL. В большинстве остальных Linux-дистрибутивов рецепт приблизительно следующий:

  1. Копируем старую директорию MySQL в нужное место (в моем случае это отдельный раздел)
  2. Меняем владельца новой директории ‘chown -R mysql:mysql newmysqldir’
  3. Меняем путь к директории с данными в конфиге MySQL — my.cnf
  4. Перезапускаем mysqld

Однако, на Ubuntu Server после выполнения этих шагов MySQL отказался стартовать и сыпал в dmsg сообщениями вида:

[26176757.175845] type=1400 audit(1358635795.168:93): apparmor="DENIED" operation="open" parent=1 profile="/usr/sbin/mysqld" name="/www-data/mysql/ibdata1" pid=7994 comm="mysqld" requested_mask="rw" denied_mask="rw" fsuid=106 ouid=106

Проблема заключается в AppArmor, который блокирует доступ для mysqld к новой директории. Решение простое:

  1. Редактируем конфиг /etc/apparmor.d/usr.sbin.mysqld
  2. Дописываем строчки вида:
    /www-data/mysql/ r,
    /www-data/** rwk,
  3. Перезапускаем AppArmor
  4. Перезапускаем mysqld

Вуаля, все работает :)