Linux系统的数据库mysql启动时报错 Starting MySQL...[ERROR] The server quit without updating PID file的解决思路和方法

目录

一、问题

二、问题分析

(一)此类错误的常见排查方法

1、检查MySQL配置文件

2、检查权限问题

3、检查系统资源

4、查看系统日志

5、检查MySQL错误日志

6、重新启动MySQL服务

7、手动启动MySQL服务

8、检查PID文件

9、修复权限

10、检查MySQL版本兼容性

11、使用MySQL内置命令

(二)结合实际情况分析

1、实情分析

2、验证

三、问题解决

(一)停掉以前的mysql进程

(二)重启mysql

(三)验证问题解决


一、问题

        Centos系统中新安装了mysql数据库,完成后,使用命令启动mysql,如下:

        service mysql start

        发现出现如下图所示的错误:

      

二、问题分析

(一)此类错误的常见排查方法

        MySQL服务在尝试启动时遇到了报错,如下:

        Starting MysQL...[ERROR] The server quit without updating PID file

        这个报错信息的意思是MySQL服务器在尝试启动时遇到了问题,并且未能正常地更新PID(进程ID)文件。这个PID文件是用于存储MySQL服务器进程ID的文件,用于确保系统管理员或其他工具可以轻松地识别MySQL服务器进程,并在需要时对其进行管理。

        解决这个问题需要根据实际情况来处理,常规有如下方法和步骤:

1、检查MySQL配置文件

        首先检查MySQL的配置文件my.cnfmy.ini(通常位于/etc/mysql/my.cnf/etc/my.cnf),确认配置是否正确,特别是[mysqld]部分。

2、检查权限问题

        确保运行MySQL服务的用户有足够的权限来写入PID文件所在的目录。

3、检查系统资源

        检查是否有足够的系统资源(如内存、CPU)来启动MySQL服务。

4、查看系统日志

        查看系统日志(如/var/log/syslog/var/log/message)以获取MySQL启动时的详细错误信息。

5、检查MySQL错误日志

        MySQL通常会在/var/log/mysql/error.log(路径可能因安装而异)中记录错误信息。检查这个文件以获取更多线索。

6、重新启动MySQL服务

        使用命令:

        service mysql restart或systemctl restart mysqld

        来重新启动MySQL服务。具体哪个命令,取决于你的系统使用的是System V还是Systemd,

7、手动启动MySQL服务

        尝试手动启动MySQL服务,看看是否有更详细的错误信息。可以使用mysqld命令,加上--verbose-v参数来获得详细输出。

8、检查PID文件

        即使服务没有成功启动,有时也可能产生一个空的PID文件。检查这个文件(通常位于/var/run/mysqld/mysqld.pid)是否为空或不存在。

9、修复权限

        如果PID文件所在目录的权限不正确,使用chownchmod命令来修复权限。

10、检查MySQL版本兼容性

        如果最近升级了MySQL,确保升级后的版本与你的系统兼容。

11、使用MySQL内置命令

        使用MySQL--initialize--bootstrap命令来初始化和启动服务。

(二)结合实际情况分析

1、实情分析

        按照上述步骤会花不少时间,那么如何快速排查和解决这个问题呢?

        仔细回忆过程,这台服务器以前客户装过mysql,并且已经启动了,但是由于满足不了我们的要求,所以我们是重新安装了mysql。针对这种情况,我们直接进入上节的第8步,查看PID文件。

        实际操作如下:

[root@ecs-52a1 home]# cat /usr/local/mysql/data/mysqld.pid
3139

        由此发现,存在pid,也就是说明有 mysql 在运行。

2、验证

        使用如下命令,查看是否有老的mysql进程在运行

        ps -ef | grep mysql

        去查看服务进程。如下图所示:

        确实有mysql的进程在运行。

        追溯前面的步骤:卸载原有mysql后,我们从未成功开启mysql。因此上面的mysql进程应该是以前的mysql的版本遗留的。

        问题应该就出在这里。

三、问题解决

(一)停掉以前的mysql进程

       使用kill命令杀掉老的mysql的进程号3139,使用如下命令

        kill -9  3139

        不正常的mysql进程3139被杀掉。

(二)重启mysql

        使用命令重启mysql,如下

        service mysql start

        结果重启正常,不在出现上述报错。

(三)验证问题解决

        查看新的mysqld服务进程,使用命令:

        ps -ef | grep mysql

        结果如下所示:

        Pid文件可见,mysql运行正常,问题得到了解决。


文章正下方可以看到我的联系方式:鼠标“点击” 下面的 “威迪斯特-就是video system 微信名片”字样,就会出现我的二维码,欢迎沟通探讨。


  • 27
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值