当前位置:   article > 正文

Mysql无法启动-pid文件缺失和日志权限问题_mysqld.pid

mysqld.pid

mysql有一天突然间启动不了,查询状态systemctl status mysql,如下图显示
在这里插入图片描述

 Process: 3057 ExecStart=/usr/sbin/mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pid $MYSQLD_OPTS (code=exited, status=1/FAILURE)
  • 1

看重点,这个pid文件有问题,我看着眼熟,所以瞄一眼配置文件,配置文件一般在/etc/mysql/my.cnf里,打开看看
在这里插入图片描述
上面的就是这个pid文件配置,下面的红框是日志配置。这个pid文件记录的是当前 mysqld 进程的ID用的,然后我切进去这个/var/run/mysqld/看看有没有这个mysql.pid文件,发现没了。。。空空如也。
良好的习惯告诉我看日志,所以我看看mysql的错误日志(路径在上图的方法查),打开这个日志文件,发现日志里面啥都没,我心想这不正常吧?被人动过吗?
下面提示说可以看看系统日志,用journalctl -xe或者journalctl -r都可以,区别的话百度一下。然后看到这两个报错提示

[ERROR] Fatal error in defaults handling. Program aborted!
Found option without preceding group in config file (前面原句,后面我只记得内容,没截到图和复制到,大概就行,前面的错是有可能一样的)  my.cnf line13 (某一行)
  • 1
  • 2

前面的意思是默认处理中出现致命错误。程序中止!(翻译),后面是找不到设置,具体的没复制到,懒得找了,然后指着的这一行(line)指回pid的这个配置,那就简单啦,pid文件没了,自己touch建一个mysql.pid,然后看了一下网上说的随便给个数字给他,例如6789(从这里看的.),不行的话试多几个。
然后重启systemctl restart mysql,给我来一句

Job for mysql.service failed. See "systemctl status mysql.service" and "journalctl -xe" for details.
  • 1

就是还不行咯,然后查一下status,和之前没有变化,还是fail,再看看系统日志journalctl -xe,出现了一下这个:
在这里插入图片描述

[ERROR] Could not open file '/var/log/mysql/error.log' for error logging: Permission denied
  • 1

简单来讲就是无权限写入这个日志里,于是乎我ll看看明细
在这里插入图片描述
额。。这日志文件竟然是新的。。权限是root的,那就改改呗,用这命令

chown -R mysql:mysql error.log
  • 1

然后再重启。。就可以了
在这里插入图片描述
问了问同事,他说他删除过日志,因为太大了,重新建了日志之后没改权限。。。好吧。
但是pid文件为啥没了,就不太清楚,暂时没找到原因。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/凡人多烦事01/article/detail/628180
推荐阅读
相关标签
  

闽ICP备14008679号