Mysql无法启动-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)

看重点,这个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 (某一行)

前面的意思是默认处理中出现致命错误。程序中止!(翻译),后面是找不到设置,具体的没复制到,懒得找了,然后指着的这一行(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.

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

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

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

chown -R mysql:mysql error.log

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

  • 4
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值