克隆的 EC2 实例上的 MySQL ibdata1 权限错误

克隆的 EC2 实例上的 MySQL ibdata1 权限错误

我正在尝试在克隆的 EC2 实例上运行 Rails 应用程序,但遇到了 ibdata1 文件的一些权限问题。在原始实例上,一切都按预期运行。但是,在克隆的实例上,当我尝试启动 mysql 时,我看到以下错误:

101103  3:56:22 [Note] Plugin 'FEDERATED' is disabled.
^G/usr/sbin/mysqld: Can't find file: './mysql/plugin.frm' (errno: 13)
101103  3:56:22 [ERROR] Can't open the mysql.plugin table. Please run mysql_upgrade to create it.
101103  3:56:22  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.

我尝试使用 sudo start mysql 以及 mysqld_safe --user=mysql 启动 mysql,并收到相同的错误。整个 /data/mysql 目录归 mysql 所有,并且目录中的每个文件对用户 mysql 和组 mysql 都有 660 权限。我尝试将所有内容 chmodding 为 777 并以不同的用户身份运行,但收效甚微。

我的 ibdata1 文件是 76GB,因此进行干净重新安装并对该文件进行托管是不可取的,但我可以在短期内解决这个问题,并在接下来的几天内根据需要进行适当的备份/恢复。

我真的不知道接下来该去哪里——有什么想法吗?

答案1

看来这是 apparmor 的问题。apparmor 有权限

/var/lib/mysql r,
/var/lib/mysql/** rwk

但 /var/lib/mysql 符号链接到 /data/mysql。我们需要添加以下两行:

/var/lib/mysql r,
/var/lib/mysql/** rwk

这似乎已经解决了问题。

相关内容