Изменение каталога данных MySQL в Ubuntu Server 10.04

Изменение каталога данных MySQL в Ubuntu Server 10.04

Я получил следующую ошибку при попытке изменить каталог данных на сервере Ubuntu 10.04.

100809 19:33:00 [Note] Plugin 'FEDERATED' is disabled.
/usr/sbin/mysqld: Can't find file: './mysql/plugin.frm' (errno: 13)
100809 19:33:00 [ERROR] Can't open the mysql.plugin table. Please run mysql_upgrade to create it.
100809 19:33:00  InnoDB: Operating system error number 13 in a file operation.
InnoDB: The error means mysqld does not have the access rights to
InnoDB: the directory.
InnoDB: File name ./ibdata1
InnoDB: File operation call: 'create'.
InnoDB: Cannot continue operation.

решение1

После некоторой общей путаницы с разрешениями автор понял, что проблема была не в том, что у него не было разрешений и прав на пути, а в том, что AppArmor не позволял MySQL читать и записывать данные в новое местоположение.

Вот его решение:

Сначала остановите MySQL, чтобы ничего странного не произошло, пока вы возитесь с настройками:

$ sudo stop mysql

Затем переместите все каталоги базы данных в их новое местонахождение:

$ sudo mv /var/lib/mysql/<all folders> /new-mysql-dir/

Не перемещайте файлы, они будут созданы MySQL, просто переместите папки (которые являются базами данных).

Затем вежливо попросите AppArmor разрешить mysql использовать новую папку:

$ sudo vim /etc/apparmor.d/usr.sbin.mysqld
  >> add lines
     /new-mysql-dir/ r,
     /new-mysql-dir/** rwk,

Затем сообщите mysql, что datadir перемещен:

$ sudo vim /etc/mysql/my.cnf 
  >> change the line
     datadir=/var/lib/mysql
  >> to
     datadir=/my-new-db-dir/

ПРИМЕЧАНИЕ: В зависимости от настроек вашей базы данных вам может потребоваться изменить innodb-data-home-dir и т. д.

Затем перезапустите AppArmor, чтобы считать новые настройки:

$ sudo /etc/init.d/apparmor restart

И снова запустите MySQL, используя новый datadir:

$ sudo start mysql

Связанный контент