mysql启动报错The server quit without updating PID file几种解决办法

anan2024-12-17
记一性启动mysql服务器失败The server quit without updating PID file的处理方法

早上一上班还没多久,数据库连接不上了,结果是一顿搜索后,出现问题的可能性有以下几种,

权限问题:MySQL服务器尝试在指定的目录中创建PID文件,但没有足够的权限执行此操作。
目录不存在:指定的目录不存在,导致无法创建PID文件。
磁盘空间不足:当磁盘空间不足时,MySQL无法创建PID文件。

下面我们将逐个解决这些问题。

解决权限问题
首先,我们需要确保MySQL服务器有足够的权限创建PID文件。为此,我们可以使用chmod命令更改目标目录的权限。

$ sudo chmod -R 777 /data/mysql  

1.上述命令将目标目录的权限更改为最高级别(777),允许MySQL服务器创建PID文件。

解决目录不存在问题
如果指定的目录不存在,我们需要手动创建它。使用mkdir命令可以轻松完成。

$ sudo mkdir /data/mysql

1.上述命令将创建名为mysql的目录。

解决磁盘空间不足问题
当磁盘空间不足时,我们需要释放一些空间以容纳PID文件。首先,我们可以使用以下命令查看磁盘使用情况。

$ df -h

1.这将显示磁盘分区的使用情况。如果发现空间不足,我们可以删除一些不必要的文件或移动它们到其他磁盘。

根据上面的原因去排查,发现磁盘空间使用率100%

[root@VM-0-59-centos data]# df -h
Filesystem      Size  Used Avail Use% Mounted on
devtmpfs        3.9G     0  3.9G   0% /dev
tmpfs           3.9G   24K  3.9G   1% /dev/shm
tmpfs           3.9G  564K  3.9G   1% /run
tmpfs           3.9G     0  3.9G   0% /sys/fs/cgroup
/dev/vda1        79G  9.1G   67G  12% /
/dev/vdb1       493G  468G     0 100% /data
tmpfs           783M     0  783M   0% /run/user/0

再继续查是哪些文件占用了空间,最后发现/data/mysql/data目录下面的日志mysql-bin.000001非常多,足足300+G,问题已经找到了,接下来就是清理这些日志文件了,但清理这些日志又要先开启mysql服务,等等,我的最初问题就是无法启动mysql服务啊,要清理日志就要先启动mysql服务,要启动mysql服务就要先清理日志,这不进入死循环了嘛。痛苦啊。。。该怎么办呢?经过我的不懈努力,发现下面的命令

# 手动启动 MySQL 查看详细错误
mysqld --verbose

可以查看启动mysql错误信息,二话不说,执行一下看看

[root@VM-0-59-centos data]# mysqld --verbose
2024-12-17 13:18:04 0 [Note] --secure-file-priv is set to NULL. Operations related to importing and exporting data are disabled
2024-12-17 13:18:04 0 [Note] mysqld (mysqld 5.6.38-log) starting as process 2885 ...
2024-12-17 13:18:04 2885 [ERROR] Fatal error: Please read "Security" section of the manual to find out how to run mysqld as root!

2024-12-17 13:18:04 2885 [ERROR] Aborting

2024-12-17 13:18:04 2885 [Note] Binlog end
2024-12-17 13:18:04 2885 [Note] mysqld: Shutdown complete

这句错误提示给了我一点启发

Please read "Security" section of the manual to find out how to run mysqld as root!
请阅读手册的“安全”部分,了解如何以root身份运行mysqld!

难道root启动mysql服务还需要另外加什么参数?

最终运行

[root@VM-0-59-centos data]# service mysqld start --user=root
Starting MySQL........ SUCCESS! 

结果成功啦,哈哈。。。。

再进mysql清理日志

reset master;
--我这里用的就一台mysql服务器,就直接用这个命令了,如果mysql服务器有主从关系的话,建议多查查资料,慎重!!!

再次查看磁盘空间

[root@VM-0-59-centos data]# df -h
Filesystem      Size  Used Avail Use% Mounted on
devtmpfs        3.9G     0  3.9G   0% /dev
tmpfs           3.9G   24K  3.9G   1% /dev/shm
tmpfs           3.9G  564K  3.9G   1% /run
tmpfs           3.9G     0  3.9G   0% /sys/fs/cgroup
/dev/vda1        79G  9.0G   67G  12% /
/dev/vdb1       493G  160G  308G  35% /data
tmpfs           783M     0  783M   0% /run/user/0

问题解决,收工

 

 

 

评论
请先登录再发表评论!