创建指向数据目录的符号链接后,MySQL 无法启动

创建指向数据目录的符号链接后,MySQL 无法启动

我已将所有内容移至/var/lib/mysql/500gb/mysql并创建了从一个到另一个的符号链接。然后,我对符号链接和执行了chown mysql:mysqland 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但没有成功。

有什么想法吗?谢谢。

答案1

事实证明,这Apparmor把事情搞砸了。我们不得不编辑这个文件:/etc/apparmor.d/usr.sbin.mysql

答案2

许多 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。

相关内容