Eu finalmente esqueci de adicionar o arquivo de configuração externo ao perfil do apparmor. agora tudo funciona
Eu queria ter meu mysql config no svn para ser versionado, então eu fiz o seguinte:
ubuntu@ip-10-226-50-211:~/mysql-config$ ls -la /etc/mysql/conf.d/
total 12
drwxr-xr-x 2 root root 4096 2011-01-27 11:45 .
drwxr-xr-x 3 root root 4096 2011-01-27 11:42 ..
lrwxrwxrwx 1 root root 37 2011-01-27 11:45 flimmit.cnf -> /home/ubuntu/mysql-config/flimmit.cnf
Um link na pasta conf.d aponta para minha configuração local. A configuração global do mysql está intocada, eu instalei uma nova versão do LTS lúcido do Ubuntu.
flimmit.cnf tem esta aparência:
[mysqld]
bind-address = 0.0.0.0
max_connections = 600
server-id = 1
log_bin = /var/log/mysql/mysql-bin.log
binlog_do_db = flimmit_shop_14
binlog_do_db = flimmit_search_14
datadir = /media/mysql-ebs/datadir
O chmod desta configuração é 644
Então eu parei o mysql, ativei a configuração, movi todo o conteúdo do / var / lib / mysql para o novo local / media / mysql-ebs / datadir
mesmo para o log, mas ainda não havia nenhum.
eu fiz um chown na pasta / media / mysql-ebs para o mysql.mysql (recursivamente)
o conteúdo do diretório de dados é
debian-5.1.flag ibdata1 ib_logfile0 ib_logfile1 mysql mysql_upgrade_info
o problema agora é que sudo start mysql
parece travar
meus estados do mysql error.log:
110127 11:57:58 [ERROR] Fatal error: Can't open and lock privilege tables: Table 'mysql.host' doesn't exist
Em algum lugar, li algo sobre não copiar ib_arch_log_0000000000, ib_logfile0
.
Então, quais arquivos copiar? O que não? E por quê?
Ps:
Eu também tentei mover apenas a pasta mysql (banco de dados mysql) e nada mais. mesma coisa. Eu também li algo sobre modificar o script de init, mas não existe tal coisa no meu script de init e eu realmente acharia estúpido se o datadir tivesse que ser definido no script de inicialização e no arquivo de configuração.
Pps:
depois de um tempo eu vi que o apparmor estava rodando, então eu ajustei as regras de acordo:
#/var/lib/mysql/ r,
#/var/lib/mysql/** rwk,
/media/mysql-ebs/datadir/ r,
/media/mysql-ebs/datadir/** rwk,
por enquanto eu descartei a mudança do diretório log e foquei apenas no diretório de dados. mas de alguma forma isso não mudou nada. É claro que reiniciei o apparmor.
Ppps:
confirmei o problema É appaormor. depois de executar /etc/init.d/apparmor teardown
, tudo funcionou bem. Mas o que há de errado com a configuração? Vou postar como um todo:
# vim:syntax=apparmor
# Last Modified: Tue Jun 19 17:37:30 2007
#include <tunables/global>
/usr/sbin/mysqld {
#include <abstractions/base>
#include <abstractions/nameservice>
#include <abstractions/user-tmp>
#include <abstractions/mysql>
#include <abstractions/winbind>
capability dac_override,
capability sys_resource,
capability setgid,
capability setuid,
network tcp,
/etc/hosts.allow r,
/etc/hosts.deny r,
/etc/mysql/*.pem r,
/etc/mysql/conf.d/ r,
/etc/mysql/conf.d/* r,
/etc/mysql/my.cnf r,
/usr/sbin/mysqld mr,
/usr/share/mysql/** r,
/var/log/mysql.log rw,
/var/log/mysql.err rw,
#/var/lib/mysql/ r,
#/var/lib/mysql/** rwk,
/media/mysql-ebs/datadir/ r,
/media/mysql-ebs/datadir/** rwk,
/var/log/mysql/ r,
/var/log/mysql/* rw,
/var/run/mysqld/mysqld.pid w,
/var/run/mysqld/mysqld.sock w,
/sys/devices/system/cpu/ r,
}
tem certeza de que o usuário mysql tem acesso ao diretório / home / ubuntu /?
Tente alterar a permissão para o datadir:
chown -R mysql:mysql /media/mysql-ebs/datadir/mysql
chown mysql:mysql /media/mysql-ebs/datadir/
chown mysql:mysql /media/mysql-ebs/