O MySQL não inicia depois de criar o link sym para o diretório de dados

2

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.

    
por Mike Cialowicz 27.07.2011 / 20:12

2 respostas

3

Acontece que Apparmor estava estragando tudo. Tivemos que editar este arquivo: /etc/apparmor.d/usr.sbin.mysql .

    
por 27.07.2011 / 20:52
0

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.

    
por 27.07.2011 / 20:46