目录

一、问题

二、问题分析

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

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 微信名片”字样,就会出现我的二维码,欢迎沟通探讨。


Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐