MySQL无法启动之硬盘容量耗空

发布于:2020-07-16 最后编辑:2020-07-16 所属分类:运维 阅读次数:886

问题描述

网站打开以后提示“建立数据库连接时出错”,怀疑 MySQL进程挂了,随手重启服务器以后,还是如此。登录服务器检查,发现 MySQL服务确实没有启动。根据经验判断,估计是硬盘满了。使用 df -h 可以看到硬盘可用为0,印证了我的判断。因为网站已经正常使用很久了,也很少上传附件,所以怀疑是日志文件造成的。然后依次排查系统日志、MySQL日志、Nginx日志、PHP日志。当检查到 Nginx日志时,发现占用量有 14G,那么基本确定了。具体排查过程如下:

[root@iz2ze3gpxv4kgxbddvcz ~]# df -h
文件系统        容量  已用  可用 已用% 挂载点
/dev/vda1        40G   38G     0  100% /
devtmpfs        1.9G     0  1.9G    0% /dev
tmpfs           1.9G     0  1.9G    0% /dev/shm
tmpfs           1.9G  336K  1.9G    1% /run
tmpfs           1.9G     0  1.9G    0% /sys/fs/cgroup
tmpfs           379M     0  379M    0% /run/user/0
[root@iz2ze3gpxv4kgxbddvcz ~]# ls -lh /var/log/
总用量 4.0M
drwxr-xr-x. 2 root   root            4.0K 10月 15 2017 anaconda
drwx------. 2 root   root            4.0K 6月  21 15:30 audit
-rw-------  1 root   root             32K 7月   6 21:01 boot.log
-rw-------  1 root   root               0 6月  30 03:10 boot.log-20200630
-rw-------  1 root   root               0 7月   1 03:46 boot.log-20200701
-rw-------  1 root   root               0 7月   2 03:15 boot.log-20200702
-rw-------  1 root   root               0 7月   3 03:30 boot.log-20200703
-rw-------  1 root   root               0 7月   4 03:48 boot.log-20200704
-rw-------  1 root   root               0 7月   5 03:06 boot.log-20200705
-rw-------  1 root   root               0 7月   6 03:24 boot.log-20200706
-rw-------  1 root   utmp             20K 7月   6 21:35 btmp
-rw-------  1 root   utmp            253K 7月   1 01:58 btmp-20200701
drwxr-xr-x. 2 chrony chrony          4.0K 8月   4 2017 chrony
-rw-r--r--  1 root   root            967K 7月   6 21:01 cloud-init.log
-rw-------  1 root   root             38K 7月   6 21:40 cron
-rw-------  1 root   root            164K 6月  15 03:09 cron-20200615
-rw-------  1 root   root            125K 6月  21 03:32 cron-20200621
-rw-------  1 root   root            165K 6月  29 03:45 cron-20200629
-rw-------  1 root   root            123K 7月   5 03:06 cron-20200705
-rw-r--r--  1 root   root             34K 7月   6 21:01 dmesg
-rw-r--r--  1 root   root             34K 7月   6 19:49 dmesg.old
-rw-r--r--  1 root   root             674 7月   6 21:01 ecs_network_optimization.log
-rw-------  1 root   root            1.3K 3月  19 22:18 grubby
-rw-r--r--. 1 root   root               0 10月 15 2017 grubby_prune_debug
drwxr-sr-x+ 3 root   systemd-journal 4.0K 11月  8 2018 journal
-rw-r--r--. 1 root   root            286K 7月   6 21:42 lastlog
-rw-------  1 root   root               0 7月   5 03:06 maillog
-rw-------  1 root   root               0 6月   7 03:42 maillog-20200615
-rw-------  1 root   root               0 6月  15 03:09 maillog-20200621
-rw-------  1 root   root               0 6月  21 03:32 maillog-20200629
-rw-------  1 root   root               0 6月  29 03:45 maillog-20200705
-rw-------  1 root   root            429K 7月   6 21:42 messages
-rw-------  1 root   root            287K 6月  15 03:09 messages-20200615
-rw-------  1 root   root            179K 6月  21 03:32 messages-20200621
-rw-------  1 root   root            348K 6月  29 03:40 messages-20200629
-rw-------  1 root   root            193K 7月   5 03:06 messages-20200705
drwxr-xr-x  2 root   root            4.0K 7月   6 19:11 multi-nic-util
-rw-r--r--  1 root   root             88K 7月   6 21:32 ntp.log
drwxr-xr-x  2 ntp    ntp             4.0K 4月  13 2018 ntpstats
drwxr-xr-x. 2 root   root            4.0K 10月 15 2017 rhsm
drwxr-xr-x  2 root   root            4.0K 7月   6 00:00 sa
-rw-------  1 root   root             10K 7月   6 21:42 secure
-rw-------  1 root   root             37K 6月  15 03:05 secure-20200615
-rw-------  1 root   root            149K 6月  20 22:48 secure-20200621
-rw-------  1 root   root             94K 6月  29 01:17 secure-20200629
-rw-------  1 root   root             36K 7月   5 00:09 secure-20200705
-rw-------  1 root   root               0 7月   5 03:06 spooler
-rw-------  1 root   root               0 6月   7 03:42 spooler-20200615
-rw-------  1 root   root               0 6月  15 03:09 spooler-20200621
-rw-------  1 root   root               0 6月  21 03:32 spooler-20200629
-rw-------  1 root   root               0 6月  29 03:45 spooler-20200705
-rw-------. 1 root   root               0 10月 15 2017 tallylog
drwxr-xr-x. 2 root   root            4.0K 10月 15 2017 tuned
-rw-rw-r--. 1 root   utmp             89K 7月   6 21:42 wtmp
-rw-------  1 root   root            2.1K 3月  19 22:20 yum.log
-rw-------  1 root   root            6.9K 11月  8 2018 yum.log-20190101
-rw-------  1 root   root              49 3月  18 22:27 yum.log-20200319
[root@iz2ze3gpxv4kgxbddvcz ~]# ls -lh /usr/local/mysql/var/
总用量 1.9G
drwx------ 2 mysql mysql 4.0K 4月   9 13:52 baidu
-rw-rw---- 1 mysql mysql   56 11月  8 2018 auto.cnf
-rw-rw---- 1 mysql mysql  74M 7月   6 19:11 ibdata1
-rw-rw---- 1 mysql mysql  64M 7月   6 21:01 ib_logfile0
-rw-rw---- 1 mysql mysql  64M 7月   6 19:11 ib_logfile1
-rw-rw---- 1 mysql mysql 352K 7月   6 21:01 iz2ze3gpxv4kgxbddvcz.err
-rw-rw---- 1 mysql mysql  30K 11月  8 2018 iZ2ze3gpxv4kgxbddvcZ.err
drwx------ 2 mysql mysql 4.0K 11月  8 2018 mysql
-rw-rw---- 1 mysql mysql 1.1G 6月  23 07:42 mysql-bin.000130
-rw-rw---- 1 mysql mysql  46M 6月  24 00:44 mysql-bin.000131
-rw-rw---- 1 mysql mysql  11M 6月  24 10:10 mysql-bin.000132
-rw-rw---- 1 mysql mysql 1.3M 6月  24 10:22 mysql-bin.000133
-rw-rw---- 1 mysql mysql 150M 6月  26 17:14 mysql-bin.000134
-rw-rw---- 1 mysql mysql 248M 7月   1 13:05 mysql-bin.000135
-rw-rw---- 1 mysql mysql 255M 7月   6 19:11 mysql-bin.000136
-rw-rw---- 1 mysql mysql  133 7月   1 13:05 mysql-bin.index
-rw-rw---- 1 mysql mysql    0 7月   6 21:01 mysql-bin.~rec~
drwx------ 2 mysql mysql 4.0K 11月  8 2018 performance_schema
[root@iz2ze3gpxv4kgxbddvcz ~]# ls -lh /home/wwwlogs/
总用量 14G
-rw-r--r-- 1 root root 94M 7月   6 21:41 access.log
-rw-r--r-- 1 root root 72K 7月   6 21:48 nginx_error.log
-rw-r--r-- 1 root root 14G 7月   6 21:48 www.baidu.com.log

解决办法

因为使用的是“lnmp一键安装包”,所以日志目录稍有不同,在 /usr/local/nginx/conf/vhost目录中,找到网站所属的conf配置文件,修改其中关于日志目录的地方。如本例中,修改 access_log /home/wwwlogs/www.baidu.com.log;access_log /dev/null; 。保存后,再执行 cat /dev/null > /home/wwwlogs/www.baidu.com.log清空之前的日志。最后,重启一下 lnmp 即可。具体过程如下:

[root@iz2ze3gpxv4kgxbddvcz ~]# cat /dev/null > /home/wwwlogs/www.baidu.com.log
[root@iz2ze3gpxv4kgxbddvcz ~]# ls -lh /home/wwwlogs/
总用量 95M
-rw-r--r-- 1 root root  94M 7月   6 21:41 access.log
-rw-r--r-- 1 root root  72K 7月   6 21:54 nginx_error.log
-rw-r--r-- 1 root root 4.2K 7月   6 21:54 www.baidu.com.log
[root@iz2ze3gpxv4kgxbddvcz ~]# lnmp restart
+-------------------------------------------+
|    Manager for LNMP, Written by Licess    |
+-------------------------------------------+
|              https://lnmp.org             |
+-------------------------------------------+
Stoping LNMP...
Stoping nginx...  done
 ERROR! MySQL server PID file could not be found!
Gracefully shutting down php-fpm . done
Starting LNMP...
Starting nginx...  done
Starting MySQL.. SUCCESS! 
Starting php-fpm  done

参考资料

标签: