Movendo o mysql datadir não está funcionando? Problemas com o symlink em conf.d?

1

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,
}
    
por The Shurrican 27.01.2011 / 13:04

3 respostas

1

Eu finalmente esqueci de adicionar o arquivo de configuração externo ao perfil do apparmor. agora tudo funciona

    
por 27.01.2011 / 14:55
1

tem certeza de que o usuário mysql tem acesso ao diretório / home / ubuntu /?

    
por 27.01.2011 / 13:20
1

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/
    
por 27.01.2011 / 13:39