服务器异常重启,导致mysql启动失败,问题解决过程记录
思路一:检查linux的安全策略。
1、查看SELinux状态:/usr/sbin/sestatus -v
2、如果状态为enabled,则为开启状态,将其设置关闭状态,以上截图为设置后的状态:
1)临时关闭 setenforce 0
2)修改/etc/selinux/config 文件,将SELINUX=enforcing改为SELINUX=disabled
3)重启服务器 reboot
3、启动mysql服务,还是报错
systemctl start mysqld
systemctl status mysqld.service
思路二:检查目录文件权限。
1、修改以上配置后,还是启动失败,继续查看日志文件:
vim /etc/my.cnf
vim /usr/local/mysql/data/error.log
2、发现/var/lib/mysql/mysql.sock.lock文件没有,创建文件夹,修改群组权限:
mkdir /var/lib/mysql
chown mysql.mysql /var/lib/mysql
3、再次启动mysql,启动成功。
systemctl start mysqld
systemctl status mysqld.service
ps aux|grep mysql
总结:可能由于最初安装数据库的时候忽略的一些东西,导致违反SELinux的安全模式,然后目录权限混乱,导致mysql无法创建文件。
SELinux 有三种工作模式,分别是:
1. enforcing:强制模式。违反 SELinux 规则的行为将被阻止并记录到日志中。
2. permissive:宽容模式。违反 SELinux 规则的行为只会记录到日志中。一般为调试用。
3. disabled:关闭 SELinux。
查看数据库安装路径命令: