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吗?
具体原因不清楚,大概和这个有关吧。
一个解决方案,收藏记录一下。