我以前在 /var/lib/mysql 中使用 mysql 数据,现在我已经创建了新的分区并在其上创建了 tank 以便与 zfs 一起使用。
之后我按照以下步骤将现有的 mysql 数据移动到新目录:https://serverfault.com/a/539729/184573
一切正常,所以我导入了新的大数据库(100 GB),但现在不再工作了。
在“/var/log/mysql/error.log”中
详细解释:
我在 /tank/mysql 上使用 zfs,一切正常
导入新数据库,mysql 运行正常
停止mysql服务并执行zfs
快照 tank/mysql@imported 现在我无法启动 mysql,因为出现上面的错误
- 尝试 chown mysql:mysql /tank/mysql -R ,仍然出现同样的错误
我已经在 Google 上搜索过这个问题,但没有任何解决方案能帮助我。权限、设置……一切似乎都正常。
操作系统:Ubuntu 服务器 14.04。
服务器:IBM X3200 m3
这可能是什么问题?
谢谢
答案1
将此作为答案发布。
这是文件权限问题。您需要确保用户mysql
有权访问 mysql datadir和它所在的目录,一直到根级目录。
如果多个用户需要访问这些目录,则将他们放在一个组中,然后授予该组访问这些目录的权限。
答案2
为什么不把 ZFS 数据集放在 MySQL 期望的位置?
zfs set mountpoint=/var/lib/mysql tank/mysql
现在您不必担心奇怪的权限,/tank
并且对于系统的其余部分来说一切看起来都正常。