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

自然
自然
自然
326
文章
348
评论
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
自然博客
快来关注一下,一个linux运维爱好者的个人博客!
Mysql最后更新:24/9/2019
自然
  • 本文由 发表于 2019年5月28日21:32:40
debian10网卡设置 Linux

debian10网卡设置

debian系统的网络配置和centos略有差别,centos是一个网卡采用一个设备文件进行信息的描述,而debian系统则是全部网卡配置集中在一个文件里面,粗浅的考虑是方便管理吧。debian系统的...
debian10更换apt源 Linux

debian10更换apt源

debian社区为debian用户提供了丰富的apt源,其中包含了主要apt源服务器、从apt源服务器以及次要apt源服务器,使用服务器所在地区临近的apt源可以极大的提高软件包的下载速度,自然今天就...
debian10开启ssh远程登录 Linux

debian10开启ssh远程登录

最小化安装debian系统后,ssh远程登录服务默认是关闭且禁止直接使用root账户进行登录。那么我们要如何开启ssh服务并允许root账户登录呢?下面自然简单说一下两种操作方式,适用于代码强迫症患者...
debian9更换apt源,优化软件包安装速度 软件目录

debian9更换apt源,优化软件包安装速度

Debian GNU/Linux ,是一个操作系统及自由软件的发行版,由一群自愿付出时间和精力的用户来维护并更新。它附带了超过 59000 个软件包,这些预先编译好的软件被打包成一种良好的格式以便于用...
匿名

发表评论

匿名网友 填写信息

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

评论:14   其中:访客  7   博主  7
    • 心灵博客 心灵博客 2

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

        • 自然 自然 8

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

            • 心灵博客 心灵博客 2

              回复 自然 建议你再了解下

                • 自然 自然 8

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

                    • 心灵博客 心灵博客 2

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

                      • 自然 自然 8

                        回复 心灵博客 好的,感谢

                • 简单生活 简单生活 3

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

                  • repostone repostone 0

                    非技术的路过。

                    • 小白 小白 0

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

                        • 自然 自然 8

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