Acontece que Apparmor
estava estragando tudo. Tivemos que editar este arquivo: /etc/apparmor.d/usr.sbin.mysql
.
Mudei todas as coisas em /var/lib/mysql
para /500gb/mysql
e criei um link simbólico de um para o outro. Em seguida, fiz um chown mysql:mysql
e chmod 777
(com ambos -h e -R, conforme necessário) para o link simbólico /var/lib/mysql
e também /500gb/mysql
.
ls -al /var/lib
me dá:
lrwxrwxrwx 1 mysql mysql 15 2011-07-27 12:55 mysql -> /500gb/mysql
Quando tento iniciar o MySQL ( service mysql start
), obtenho o seguinte em /var/log/mysql/error.log
:
110727 12:48:32 [Note] Plugin 'FEDERATED' is disabled.
/usr/sbin/mysqld: Can't find file: './mysql/plugin.frm' (errno: 13)
110727 12:48:32 [ERROR] Can't open the mysql.plugin table. Please run mysql_upgrade to create it.
110727 12:48:32 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: 'open'.
InnoDB: Cannot continue operation.
Tanto /500gb/mysql/ibdata1
como /500gb/mysql/mysql/plugin.frm
existem e são de propriedade de mysql
. Qual é o problema?
Além disso, o MySQL parece ocasionalmente atrapalhar meu link simbólico. Ele desaparece e se torna um diretório regular após um número de inícios falhos.
Eu também tentei editar meu /etc/mysql/my.cnf
e definir datadir = /500gb/mysql
sem sorte.
Alguma ideia? Obrigado.
Muitos daemons do UNIX se recusarão a trabalhar com arquivos com permissões de acesso que sejam muito brandas (muitas pessoas têm acesso de leitura / gravação a elas). Tente executar:
find /500gb/mysql -type f -exec chmod a-x {} \;
chmod -R u+rwX,go-rwx /500gb/mysql
chown -Rh mysql:mysql /500gb/mysql
E então inicie o MySQL.
Tags symbolic-link mysql database