移动MySQL的datadir不工作? 问题与conf.d中的符号链接?

我想在svn我的MySQLconfiguration被版本化,所以我做了以下:

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 

conf.d文件夹中的链接指向我的本地configuration。 全球的MySQLconfiguration是不变的,我安装了一个新的发行版的ubuntu lucid LTS。

flimmit.cnf看起来像这样:

 [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 

这个configuration的chmod是644

所以我停止了mysql,激活了configuration,将/ var / lib / mysql的所有内容移到了新位置/ media / mysql-ebs / datadir

相同的日志,但还没有任何。

我整个/ media / mysql-ebs文件夹到mysql.mysql(recursion)

数据目录的内容是

 debian-5.1.flag ibdata1 ib_logfile0 ib_logfile1 mysql mysql_upgrade_info 

现在的问题是, sudo start mysql似乎挂起

我的mysql error.log指出:

 110127 11:57:58 [ERROR] Fatal error: Can't open and lock privilege tables: Table 'mysql.host' doesn't exist 

有些地方我读了一些关于不复制ib_arch_log_0000000000, ib_logfile0

那么要复制哪些文件? 什么不是? 为什么?

PS:

我也试图移动只有MySQL文件夹(MySQL数据库),没有别的。 一样。 我还读了一些关于修改init脚本的内容,但是在init脚本中没有这样的东西,如果必须在init脚本和configuration文件中定义datadir,我真的会觉得它很愚蠢。

PPS:

过了一会儿,我看到了那个装甲运行,所以我相应地调整了规则:

  #/var/lib/mysql/ r, #/var/lib/mysql/** rwk, /media/mysql-ebs/datadir/ r, /media/mysql-ebs/datadir/** rwk, 

现在我放弃了日志目录的更改,只关注数据目录。 但不知何故,这并没有改变任何东西。 当然,我重新启动apparmor。

公私合作伙伴:

我证实了这个问题。 运行/etc/init.d/apparmor teardown一切正常。 但是configuration有什么问题? 我将把它作为一个整体发布:

 # 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, } 

你确定mysql用户可以访问/ home / ubuntu /目录吗?

尝试对datadir的更改权限:

 chown -R mysql:mysql /media/mysql-ebs/datadir/mysql chown mysql:mysql /media/mysql-ebs/datadir/ chown mysql:mysql /media/mysql-ebs/ 

我终于忘了将外部configuration文件添加到apparmorconfiguration文件。 现在一切正常