centos系统中MySQL无法启动的问题

问题:

在服务器上发现mysql服务挂了。

指令

systemctl status mysqld

显示服务是停止状态

尝试启动服务

指令

systemctl start mysqld

报错如下

我先尝试了,看log, 将里边最后的error报错的解决方式尝试了: 我的报错是 找不到PID。

又尝试了mysql配置文件,/etc/my.cnf 文件的校对,及文件权限的校对,都是正确的。

但是最总还是启动不起来。

于是我输入系统建议的指令查看原因:

指令

journalctl -xe

输出如下:

2020-12-24T06:29:14.146597Z 0 [Note] mysqld (mysqld 5.7.31-0ubuntu0.18.04.1) starting as process 2760 ...2020-12-24T06:29:14.151841Z 0 [ERROR] Could not open file '/***/mysql/log/mysqld.log' for error logging: Permission denied2020-12-24T06:29:14.151990Z 0 [ERROR] Aborting

Could not open file ‘/***/mysql/log/mysqld.log’ for error logging: Permission denied

路径和你配置的路径有关我用“***”代替,指向的是你配置的mysqld.log,因为权限问题打不开。

在网上查资料,都是使用chamod 或者chown 修改成mysql权限,但是我尝试之后还是不行。

解决方法

最终我同事帮助解决了(同事牛逼666)

输入指令:

setenforce 0

在重启mysqld服务:

systemctl restart mysgld

没有报错显示成功了

分析

在网上查的 setenforce 0 的作用

表示 设置SELinux 成为permissive模式临时关闭selinux防火墙

难道是关掉防火墙才可以又权限记录mysqld.log吗?

具体原因不清楚,大概和这个有关吧。

一个解决方案,收藏记录一下。