阿里云磁盘提示使用率为100%,提示网站打不开,原因则无一例外都是磁盘爆满,导致mysql停止工作,删除部分文件后,网站恢复访问,不过过不多久,网站又再次因为磁盘爆满而打不开,在服务器上找了一圈的原因,终于发现了几个特别大的文件(linux查询文件夹体积的命令是:du -h):
百度后得知,这些文件都是数据的操作日志文件,登陆mysql后清理掉就可以了
mysql登陆命令(注:前面的路径可能会有所不同):/usr/local/mysql/bin/mysql -u root -p
清理命令:reset master;(注意后面的分号也要带好)
清理完后,磁盘剩余空间顿时增大了不少,如果想要关闭数据库操作日志的朋友,可以接着往下看:
如果你只有一个mysql服务器,在/etc/ 下面找到my.cnf文件vim /etc/my.cnf把里面的:
1 2 |
|
这两行注释掉(在前面加#即可),然后重启mysql服务可以了(重启mysql命令,可以用:service mysqld restart)。
但是如果你设置了主从服务器,那么就需要做以下操作了。
A:在每个从属服务器上,使用SHOW SLAVE STATUS来检查它正在读取哪个日志。
B:使用SHOW MASTER LOGS获得主服务器上的一系列日志。
C:在所有的从属服务器中判定最早的日志,这个是目标日志,如果所有的从属服务器是更新的,就是清单上的最后一个日志。
D:清理所有的日志,但是不包括目标日志,因为从服务器还要跟它同步。 简单地说,这些MySQL目录下的形如mysql-bin.000***的文件时MySQL的事务日志。 删除复制服务器已经拿走的binlog是安全的,一般来说网络状况好的时候,保留最新的那一个足以。
==============================
您是否遇到过这种情况,数据盘空间富足,系统盘无缘无故感觉就满了?一直在找问题?由此导致的本机mysql无法启动?
等一系列坑爹的问题!dh -h,我们看看磁盘使用情况
尼玛,吃了那么多。。难怪刚才mysql无缘无故写不进去,重启系统之后导致mysql服务启动!
ok,我们来解决这个问题,输入命令:
[php]
tmpwatch -afv 5 /tmp
[/php]
会看到一系列删除动作,删除了日志文件这些垃圾占用空间。ok,继续查看
现在正常了。
什么是tmpwatch命令?
tmpwatch – removes files which haven’t been accessed for a period of time
如上所言,删除指定的目录中一段时间未访问的文件。一般对于/tmp下的文件或日志文件。
参数:
-a或–all 删除任何类型的文件。
-m或–mtime 根据文件被更改时间
-c或–ctime 根据文件更改状态时间
-M或–dirtime 根据文件夹被更改时间
-f或–force 强制删除文件或目录,其效果类似rm指令的”-f”参数。
-l 不删除符号链接
-U或–exclude-user=用户名或uid 排除某用户的文件
-x 或–exclude=path 排除某路径
-X 或–exclude-pattern=pattern 排除某规则下的路径
-q或–quiet 不显示指令执行过程。
-v或–verbose 详细显示指令执行过程。
-test 仅作测试,并不真的删除文件或目录。
另外对于运维人员我要强调一下-d或–nodirs选项, 某些运维人员可能在日志文件夹中创建了子目录,默认子目录也会被删除的,使用-d参数可以避免。