侧边栏壁纸
博主头像
落叶人生博主等级

走进秋风,寻找秋天的落叶

  • 累计撰写 130562 篇文章
  • 累计创建 28 个标签
  • 累计收到 9 条评论
标签搜索

目 录CONTENT

文章目录

Archlinux下安装mariadb没法改变datadir(Can't create test file)

2023-12-03 星期日 / 0 评论 / 0 点赞 / 74 阅读 / 1813 字

140602 22:36:39 mysqld_safe Starting mysqld daemon with databases from /home/mysql 140602 22:36:39 [

140602 22:36:39 mysqld_safe Starting mysqld daemon with databases from /home/mysql 140602 22:36:39 [Warning] Can't create test file /home/mysql/localhost.lower-test

140602 22:36:39 [Warning] Can't create test file /home/mysql/localhost.lower-test /usr/libexec/mysqld: Can't change dir to '/home/mysql/' (Errcode: 13) 140602 22:36:39 [ERROR] Aborting   140602 22:36:39 [Note] /usr/libexec/mysqld: Shutdown complete  

140602 22:36:39 mysqld_safe mysqld from pid file /var/run/mysqld/mysqld.pid ended  

你已经修改了my.cnf中的datadir的值
你已经chown和chmod了数次新数据目录或者其父路径的属主和权限
你无数次地试图sudo systemctl restart mysqld,以及mysql_install_db!

恭喜你看见这篇文章,我在被系统坑了几个小时之后,找到了解决的方法。

apparmor,这个坑爹货!它也对mysql所能使用的目录权限做了限制
在 /usr/share/mysql/policy/apparmor/usr.sbin.mysqld(如果没有这个,请sudo find / -name "apparmor"查看自己的相关文件所在) 这个文件中,有这四行,规定了mysql使用的数据文件路径权限

/var/lib/mysql/ r,
/var/lib/mysql/** rw,
/var/lib/mysql/*.log w,
/var/lib/mysql/*.err w,
 

你一定看到了,/var/lib/mysql/就是之前mysql安装的数据文件默认路径,apparmor控制这里mysqld可以使用的目录的权限
我想把数据文件移动到/data/mysql下,那么为了使mysqld可以使用/data/mysql这个目录,照上面那四条,增加下面这四条就可以了

/data/mysql/ r,
/data/mysql/** rw,
/data/mysql/*.log w,
/data/mysql/*.err w,


之后,就可以顺利地干你想干的事儿了!

广告 广告

评论区