无法创建/写入文件'/var/lib/mysql/aria_log_control'

4

出现了一些问题。我停止了MaridaDB,将/var/lib/mysql移动到了另一个位置,然后用软链接替换了旧的mysql。

cd /var/lib
ln -s /data/mysql .

然后我添加了。
chown -R mysql:mysql mysql

然后我去了/data并且执行了同样的操作(注意:这种迁移在常规mysql中可以正常工作)。但是在MariaDB中却出现了问题:

[错误] mysqld: 无法创建/写入文件'/var/lib/mysql/aria_log_control' (Errcode:13 "Permission denied") [错误] mysqld: 尝试使用aria控制文件'/var/lib/mysql/aria_log_control'时出错 '无法创建文件' [错误] 插件'Aria'初始化函数返回错误。[错误] 插件'Aria'注册为存储引擎失败。

那我应该怎么办来修复它呢?我尝试设置了一些权限,但是还是不行。
chmod 777 /var/lib/mysql/aria_log_control

但是却毫无结果。

这将会很有帮助 https://bbs.archlinux.org/viewtopic.php?id=160277 - Sathish D
撤销您对日志文件大小所做的任何配置更改,然后重新启动MySQL。 1)在运行中的MySQL中:SET GLOBAL innodb_fast_shutdown=0; 停止MySQL 2)对日志文件大小进行配置更改。 3)删除两个日志文件。 4)启动MySQL。它会抱怨缺少日志文件,但它会创建它们,一切都会很好。 - Sathish D
提供的答案都与问题没有多大关系。我的服务器一直无法加载。 - user3021543
[警告] InnoDB:已创建新的日志文件,LSN = 1602497 131122 17:56:55 [注意] InnoDB:128个回滚段处于活动状态。 131122 17:56:55 [注意] InnoDB:正在等待清除开始 131122 17:56:55 [注意] InnoDB:1.2.6已启动;日志序列号为1602572 131122 17:56:55 [错误] mysqld:无法创建/写入文件'/var/lib/mysql/aria_log_control'(错误代码:13“权限被拒绝”) 131122 17:56:55 [错误] mysqld:在尝试使用aria控制文件'/var/lib/mysql/aria_log_control'时出错,无法创建文件。 - user3021543
2个回答

8
在我的情况下,问题是尽管mysql目录和其中的文件属于用户mysql,但路径中有一个目录缺少x位,无法让不属于正确组的用户使用。换句话说,由于路径中的某个目录不允许,用户无法移动到目标目录。

3
你好@Zds,我知道这是一个旧回答,但你能否详细说明解决问题的步骤?我对Linux仍然很陌生,似乎这是与我的问题相关的唯一答案(我是从Google搜索过来的)。至少提供参考资料会很好。谢谢 :) - Irfandy Jip
1
我现在没有时间提供非常全面的信息,因此暂时只发布评论。这个维基页面可能会帮助你前进:https://wiki.archlinux.org/index.php/File_permissions_and_attributes如果你有一个文件/var/foo/bar,如果目录/var和/var/foo没有权限x(执行),即使该文件本身具有允许读取的权限,你也无法访问文件foo。 - Zds
嗨@Zds,我通过重新安装MariaDB解决了我的问题。现在它完美地运行了!谢谢你的回复,我仍然会看一下那些文件,毕竟我还是Linux上的新手。 - Irfandy Jip
只是在扩展@Zds的评论,解决了我的问题... cd到你遇到问题的任何目录。 ls -las并查看顶部的“.”目录,看看权限字符串是否以“x”结尾,这将是其他人执行的。 如果没有,则chmod o+x . 接下来cd ..并重复此操作。 这样做,直到您检查了所有目录,直到根目录。 - Tom Dunn
要在需要的地方添加o+x,您可以使用namei -l \realpath .``检查整个树。 - Antonio Bardazzi

0
在我的情况下,这是在需要重启操作系统的更改后发生的。结果发现SELINUX处于ENFORCE模式,不允许MySQL访问文件。使用以下命令解决:
sudo getenforce sudo setenforce 0

当前写的回答不够清晰。请编辑并添加更多细节,以帮助他人理解如何回答问题。您可以在帮助中心找到有关如何撰写好回答的更多信息。 - Pratik Bhajankar

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接