Mariadb 启动失败报错permission denied

Mariadb 启动失败报错permission denied
系统架构介绍:
生产某系统使用mariadb 10.2.6 版本,架构虚拟机做一主一从。实例用户是mysql,实例属组也是mysql。

报错:
某天系统管理员反应主库的虚拟机因宿主机宕掉,主库虚拟机漂移别的宿主机起来后,申请高权手工启动mariadb 启动失败。
报错如下:
can’t create/write to file ‘/mariadata/log/mysqld.log’ permission denied.

应急处理:
ls -l /mariadata/log/mysqld.log
-rw-r–r-- 498 mysql /mariadata/log/mysqld.log
cd 相关的datadir /home/mariadata/目录发现
data tmp log 等子目录也是498 mysql权限
cat /etc/passwd
发现mysql 用户的属组是901:901 ,同时mysql group组id 也是901.
推测是调整都mysql 相关权限,导致重启失败。

调整权限
chown mysql:mysql /mariadata/log/mysqld.log
cd /home/mariadata/
chown -R mysql:mysql data log tmp

再次启动数据库成功启动。

登录从库,查看主从状态
show slave status\G;
Slave_IO_Running:Yes
Slave_SQL_Running:Yes
显示主从同步状态正常。

原因分析:
经管理员查阅之前的变更记录,之前有调整mysql相关属组和用户id值,以前是498:498 mysql 直接调整了/etc/passwd和/etc/group 相关的id值为901.
调整后为901:901 mysql:mysql,但是mysql实例用户涉及的相关mariadb文件权限没有调整,不重启数据库不报错,重启后就报错导致上面启动失败。

总结:
在生产环境实例用户权限是不能随便调整的,后续将从库相关mariadb文件权限也同步调整,同时将主库从库关于主从的切换脚本是实例用户权限的脚本同时调整权限。
看似一个简单调整用户和组id值的动作,没有考虑全面也会留下隐患,影响启动、影响切换,生产系统相关用户属组权限调整应该谨慎、相关考虑也要全面。

你可能感兴趣的:(Mariadb 启动失败报错permission denied)