早上一上班还没多久,数据库连接不上了,结果是一顿搜索后,出现问题的可能性有以下几种,
权限问题: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
问题解决,收工