我把/var/lib/mysql中的所有东西都移到了/500gb/mysql上,并创建了一个符号链接。然后,我对chown mysql:mysql和chmod 777 (必要时使用-h和-R )对/var/lib/mysql符号链接和/500gb/mysql进行了操作。
ls -al /var/lib给了我:
lrwxrwxrwx 1 mysql mysql 15 2011-07-27 12:55 mysql -> /500gb/mysql当我尝试启动MySQL (service mysql start)时,可以在/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./500gb/mysql/ibdata1和/500gb/mysql/mysql/plugin.frm都存在,并且属于mysql。怎么回事?
而且,MySQL似乎偶尔会破坏我的符号链接。在许多失败的启动之后,它消失并成为一个常规目录。
我也尝试过编辑我的/etc/mysql/my.cnf和设置datadir = /500gb/mysql而没有运气。
有什么想法吗?谢谢。
发布于 2011-07-27 18:52:47
结果发现Apparmor把事情搞砸了。我们必须编辑这个文件:/etc/apparmor.d/usr.sbin.mysql。
发布于 2011-07-27 18:46:34
许多UNIX守护进程将拒绝使用访问权限太宽的文件(太多人对其进行读/写访问)。试着跑:
find /500gb/mysql -type f -exec chmod a-x {} \;
chmod -R u+rwX,go-rwx /500gb/mysql
chown -Rh mysql:mysql /500gb/mysql然后启动MySQL。
https://serverfault.com/questions/294716
复制相似问题