mysql 日志占满硬盘 导致服务器宕机
文章目录
昨天晚上服务器宕机两次..
第一次,没发现是硬盘的问题.重启下服务器.网站就正常了.
还没过半小时服务器又挂了.然后重启下,发现mysql启动不了.看了下日志,发现是硬盘满了.
先简单使用命令清理下硬盘,清理了系统log目录和tmp目录
清理出5G左右.然后mysql能正常启动.
先临时跑起来再说,
查找问题
因为我数据库不大.数据库实际大小不超过20M.
网站也没有任何上传文件.网站打开100MB左右.
越想越不对.
然后用命令查看,var目录使用了35GB
[root@VM-12-4-centos /]# du -sh * | sort -n
du: cannot access ‘proc/2720/task/2720/fd/4’: No such file or directory
du: cannot access ‘proc/2720/task/2720/fdinfo/4’: No such file or directory
du: cannot access ‘proc/2720/fd/4’: No such file or directory
du: cannot access ‘proc/2720/fdinfo/4’: No such file or directory
0 bin
0 dev
0 lib
0 lib64
0 proc
0 sbin
0 snap
0 sys
1.1G root
1.1G swapfile
3.2G usr
4.0K media
4.0K mnt
4.0K srv
8.5M run
16K lost+found
35G var
40K tmp
60M etc
65M opt
104K home
207M boot
继续查看
是lib目录,继续查看发现是mysql目录
也就是/var/lib/mysql
一看,发现里面大量 1.1G的文件.
[root@VM-12-4-centos mysql]# du -sh * | sort -n
0 mysql.sock
1.1G alex.000009
1.1G alex.000011
1.1G alex.000012
1.1G alex.000014
1.1G alex.000015
1.1G alex.000016
1.1G alex.000017
1.1G alex.000022
1.1G alex.000023
1.1G alex.000024
1.1G alex.000025
1.1G alex.000026
1.1G alex.000027
1.1G alex.000028
1.1G alex.000029
1.1G alex.000030
1.1G alex.000031
1.1G alex.000032
1.1G alex.000033
1.1G alex.000034
1.1G alex.000035
1.1G alex.000036
1.1G alex.000037
1.1G alex.000038
1.1G alex.000039
1.1G alex.000040
1.1G alex.000041
1.1G alex.000042
1.1G alex.000043
1.1G alex.000044
1.1G alex.000045
1.1G alex.000046
1.1M performance_schema
2.8M alex.000007
3.7M alex.000048
4.0K alex.000001
4.0K alex.000002
4.0K alex.000006
4.0K alex.000008
4.0K alex.000021
4.0K alex.index
4.0K auto.cnf
4.0K ca-key.pem
4.0K ca.pem
4.0K client-cert.pem
4.0K client-key.pem
4.0K ib_buffer_pool
4.0K master-bin.000002
4.0K master-bin.index
4.0K mysql.sock.lock
4.0K private_key.pem
4.0K public_key.pem
4.0K relay-log.000001
4.0K relay-log.index
4.0K server-cert.pem
4.0K server-key.pem
4.1M alex.000018
4.9M master-bin.000001
8.0K alex.000020
12M ibtmp1
12M mysql
21M dujiaoka
28K alex.000019
48M ib_logfile0
48M ib_logfile1
76M ibdata1
80M blog
121M alex.000005
184K alex.000003
223M alex.000013
258M alex.000004
436K vmq
651M alex.000047
680K alex.000049
680K sys
847M alex.000010
解决问题
开始还不知道这些文件是啥能不能删.
然后百度找到一篇博文.
https://www.vpsdawanjia.com/47.html
发现他截图和我一样,大量1.1GB文件占用磁盘.
然后根据他的方案解决了.
1,mysql执行清除日志命令
mysql> reset master;
Query OK, 0 rows affected (0.26 sec)
执行完,那些1.1G文件就都自动消失了.磁盘占用就正常了.
一下就清理出30多G容量出来了.
[root@VM-12-4-centos ~]# df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 909M 0 909M 0% /dev
tmpfs 919M 0 919M 0% /dev/shm
tmpfs 919M 8.5M 911M 1% /run
tmpfs 919M 0 919M 0% /sys/fs/cgroup
/dev/vda1 50G 7.3G 40G 16% /
tmpfs 184M 0 184M 0% /run/user/0
2,彻底关闭日志功能.
vi /etc/my.cnf 注释掉这两行.然后重启mysql即可.
#log-bin=alex
#log-bin-index = master-bin.index