记录一次MySQL报错提示:The server quit without updating PID file解决过程

自然 2019年5月28日21:32:40 14
摘要

作为一名运维技术学习爱好者,自然今天接到了一个奇怪的问题,mysqld无法启动,进程pid一直在改变,通过mysql-erro.logh日志文件发现问题出现在mysql报错Do you already have another mysqld server running on socket的正确解决方法,本着实事求是的精神,自然找到了问题关键,那么解决问题也就变得容易多了。

问题起因

今天一个客户突然发现他的数据库莫名其妙挂掉,一直无法重启。通过phpMyadmin访问数据库一直提示“mysqli::real_connect(): (HY000/2002): Connection refused on Live”,可以理解链接无法生存或者链接无法正确建立。

记录一次MySQL报错提示:The server quit without updating PID file解决过程

客户参照网上的教程对phpmyadmin的相关代码进行修改,毫无作用可言。最终,用户选择了重启mysqld服务,然而进一步报错“Starting MySQL...The server quit without updating PID file [FAILED]ysql/mysql.pid).”大概意思是mysql服务器关闭但没有正确刷新PID文件。

解决过程

百度搜索无果,咱们还是去老实检查my.cnf配置文件和mysql错误日志吧。

首先检查mysqld的配置文件/etc/my.cnf文件,打开发现datadir=/data/mysql,实际找到的目录是/data/Mysql,(经过操作发现他服务器区分大小写)找到错误一个先修正。

然后,重启mysqld发现问题依然存在。

继续查看错误日志,最终发现错误:

记录一次MySQL报错提示:The server quit without updating PID file解决过程

开启科普模式,/tmp/mysql.sock是一个临时文件,本身并不存在,是在mysqld启动时自动生成的文件。

我们首先需要检查为什么mysql.sock文件没有正确生成。

这里纠正一个严重的错误,在心灵博主的指导下使用了纯净系统进行测试,/tmp文件夹属于root用户,权限777,里面的文件mysql.sock数据mysql用户。

修正如下命令

chmod  777 /tmp

然后重新启动mysqld,正常启动。

小结

这次问题的经验告诉我们,网上的资料存在时效性,搜到的东西并不一定适用于当前网络环境所产生的问题。我们只有通过实践操作,实践寻找问题,找到问题,最终才能正确的解决问题。理论和实践相结合去学习linux运维才是硬道理,实事求是解决问题才是真服务。

weinxin
网科文媒
快来关注一下,你想要的这里都有喔!
自然

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

目前评论:14   其中:访客  7   博主  7

    • avatar 心灵博客 2

      /tmp文件夹所有者本身就该是root。
      正确的做法应该是 chmod 777 /tmp
      那客户心也是真大,一言不合就重装。

        • avatar 自然 7

          @心灵博客 不是的,那个目录需要给mysqld:mysqld授权,不然无法创建sock入口文件

            • avatar 心灵博客 2

              @自然 建议你再了解下

                • avatar 自然 7

                  @心灵博客 谢谢,有木有文章可以给我参考一下

                    • avatar 心灵博客 2

                      @自然 你可以装一个干净的linux系统看一下。到底是属于哪个用户的,如果你已将所有者给mysql,而权限不是777的话。其他某些软件的进程会出问题的。

                      • avatar 自然 7

                        @心灵博客 好的,感谢

                • avatar 简单生活 3

                  搜索引擎是我等小白解决疑难杂症的必备手段!

                  • avatar repostone 1

                    非技术的路过。

                    • avatar 小白 0

                      你估计的这个mysqld守护进程也太搞笑了吧。。。那个是mysqld的守护进程???这个是你每次执行grep命令本身的进程。跟MySQL没有半毛钱关系

                        • avatar 自然 7

                          @小白 感谢纠正,原来grep命名还有这种情况:一般情况输出一条内容,基本输出的是grep命令本身的进程