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即可。