MySQL数据库出现连接异常(错误代码2013)

在生产系统中的数据库服务突然在下午崩溃,起初只是以为远程连接失败导致的服务异常。结果在服务器上检查之后发现整个服务都瘫痪了,并且无法进行正常重启和关机操作,于是就开始了漫长的抓鱼生涯,好在最后抓住了鱼,并解决了问题,以此作为记录。

一、出现2013错误

首先遭殃的是网页服务出现了问题,后来定位到是数据库访问失败导致的网页服务问题。于是通过远程管理工具Navicat进行连接发现返回了错误代码为2013的问题,由于以前没有遇到过此类问题,于是先通过百度搜索该错误代码的意思。
大部分的博主反馈说是服务器上的数据库服务异常导致的连接异常,到服务器上一看MySQL进程,果然是有问题的:
exception

二、重启

遇事不决,即重启。我首先想到的是直接把MySQL服务重启一下,于是直接将上面截图中有诸多问号的那个进程给kill掉,然后再进行启动

service mysql start

这个时候,发现mysql启动不了,返回了如下信息:

start: Job failed to start

心里一凉,难道MySQL的启动命令都失效了,莫非是配置文件遭到了损坏?
使用service mysql status查看了一下MySQL的当前状态,返回如下信息:

mysql stop/waiting

推测是否是之前直接杀进程的方式让MySQL没有正常停止,我使用了如下命令进行启动,返回了关键信息:

/etc/init.d/mysql start
The partition with /var/lib/mysql is too full!

磁盘分区满了。使用df -h命令查看磁盘存储情况

100%
被占用到100%了,难怪出现异常。我将日志数据和冗余备份数据进行了清理之后,磁盘容量恢复到50%以下,直接想登录一下MySQL看看效果怎么样,使用mysql -uroot -p登录之后,又返回了一个错误:

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (111)

查阅相关资料之后,发现是socket路径连接出现异常,在YunWisdom博主的博客ERROR 2002 (HY000): Can’t connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock’的指导下,我选择了第四点故障解决方法的第二种解决方案,执行以下命令重新建立正确的socket链接:

ln -s /storage/db/mysql/mysql.sock /var/lib/mysql/mysql.sock

这个时候我再执行MySQL重启命令:service mysql restart
之后再进行访问数据库发现,已经没有任何问题了。

三、总结

在整个解决过程中,我的目标很明确,用最简单的方法解决最难的问题。然而就是在采用重启的解决方法过程中碰到了形形色色的问题,不过好在开源社区对于问题的总结和分享帮助了我定位到准确的症结,最后在实践的基础上成功解决了异常,还是比较有成就感。
首先要理解报错反馈信息,因为机器是不会骗人的,通过关键报错信息定位问题是很重要的一项技能。然后才是通过关键报错信息来查找相关解决方案,最后选择最合适的方案解决问题。

参考资料:

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值