圈小蛙

Mariadb、Mysql数据库启动出现Can’t Create Test File错误的解决方法

Mariadb出现Can't Create Test File错误

CentOS安装Mariadb后,数据库服务可以正常启动,默认的数据目录是/var/lib/mysql,通过my.cnf修改数据目录为/home/mysql后,启动服务后,出现报错:

[Warning] Can't create test file /home/mysql/data/......

自查发现:

1.已经给予/home/mysql/数据目录mysql用户的所有者权限:chown -R mysql.mysql /home/mysql/
2.已经保证/home/mysql/数据目录的所有父级目录对用户、用户组、以及其他均有“x”执行权限,甚至都给了777还不行:chmod -R 777 /home/mysql/
3.临时禁用SELinux,执行:setenforce 0

还不行,继续在Mariadb官方网站查找发现了解决方法:

默认的systemd管理单元mariadb.service中会有ProtectHome=true的配置,即数据目录设置在/home、/root、/run/user下的时候,通过systemctl或者Service启动是无法启动数据库服务的,因为home目录受保护了,只有编辑mariadb.service 中的ProtectHome修改为false后才可以正常启动。

在/lib/systemd/system/mariadb.service文件里修改ProtectHome=false,修改完成后执行systemctl daemon-reload即可解决。

Mysql出现Can't Create Test File错误

一般出现这种情况也是data数据目录的问题,删除data数据目录,重新初始化,命令行输入

mysqld --initialize-insecure
重新启动Mysql即可。
Exit mobile version