记录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命令
最后也谢谢杜老师每一次的技术支持工作!响应及时!
哇 你要支持我吗?太慷慨了!谢谢
昨天晚上我的服务器就突然宕机了,好久没备份数据了,不过可能是因为服务商的网络波动,看了下cdn跟服务器后台都运行正常,过了一会自己好了,赶紧备份了一下数据文件
数据这东西必须要每天备份呀,流量也不大,我是本地备份一份,又拍云存储备份一份.设置告警服务器宕机发送邮件,我准备迁移到1pannel去了
是先删除lock文件后,再去启用服务。
启用服务后会生成lock文件,这时不要删除「该文件启动后请不要动」
好 感谢杜老师的纠正!
自己的服务器总是会出现一些意想不到的情况,感觉还是用云服务器比较省力
主要是自己有环境,没必要浪费买云服务器的钱啦!