记录Mysql服务启动失败现象故障

发布时间:2024-01-17

摸索过程

和往常一样,早上起床打开电脑核对凌晨同事割接业务上线情况,核对完成之后打开后台查看业务是否异常,发现网站评论的MySQL提示异常,因为IP地址库我是存放在了数据库里面,所以我去查看了Mysql错误日志,发现反复尝试连接,最终被关闭,通过netstat -tunlp发现没有Mysql的进程.

于是乎SSH上服务器用命令进行启动看看提示什么

sudo service mysql start

发现提示

Job for mysqld.service failed because the control process exited with error code.
See "systemctl status mysqld.service" and "journalctl -xeu mysqld.service" for details.

尝试登录Mysql查看情况

mysql -u root -p

发现提示

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)

解决方案

我以为是缓存问题,设置了innodb_buffer_pool_size大小,设置完成之后保存发现依旧启动失败,找到杜老师协助帮忙,成功解决问题,可以看到根据前面的错误代码2002发现找不到sock这个文件,杜老师的解决方案是找到当下mysql.sock.lock删除即可.

删除成功之后lsof -i:3306发现Mysql服务进程已经在运行.

通过CSDN查阅资料发现另外一种解决方案

通过lsof -c mysqld | grep sock命令定位sock的具体位置

修改/etc/my.cnf配置文件,在/etc/php.ini文件中MySQL选项下找到mysql.default_socket 并设置其值指向正确的mysql服务socket文件即可, 在配置文件中添加client选项和mysql选项,并使用这两个选项下的socket参数值,与Mysqld选项下的socket参数值,指向的socket文件路径完全一致。

使用ln -s /storage/db/mysql/mysql.sock /var/lib/mysql/mysql.sock命令

最后也谢谢杜老师每一次的技术支持工作!响应及时!

打赏


哇 你要支持我吗?太慷慨了!谢谢
上一篇
下一篇
评论 ( 6 )
  1. 昨天晚上我的服务器就突然宕机了,好久没备份数据了,不过可能是因为服务商的网络波动,看了下cdn跟服务器后台都运行正常,过了一会自己好了,赶紧备份了一下数据文件

    1月19日 回复
    1. 数据这东西必须要每天备份呀,流量也不大,我是本地备份一份,又拍云存储备份一份.设置告警服务器宕机发送邮件,我准备迁移到1pannel去了

      1月19日 回复
  2. 是先删除lock文件后,再去启用服务。
    启用服务后会生成lock文件,这时不要删除「该文件启动后请不要动」

    1月17日 回复
    1. 好 感谢杜老师的纠正!

      1月17日 回复
  3. 自己的服务器总是会出现一些意想不到的情况,感觉还是用云服务器比较省力

    1月17日 回复
    1. 主要是自己有环境,没必要浪费买云服务器的钱啦!

      1月17日 回复