linux系统中清理MySql的日志文件mysql-bin.00000
首先说明,mysql-bin.00000*类似的文件是mysql的日志文件。
通过命令
代码如下 | |
du -h –max-depth=1 / |
查看根目录下每个文件夹所占用存储的大小,发现/var占用了快3G,进一步使用du命令,发现是存放mysql数据文件的文件夹占用了绝大部分空间,进入该文件夹,发现有很多mysql-bin.00000开头的文件,而且其中的某些达到了1G以上,google发现原来这些用户是mysql记录的日志文件,用于数据库崩溃后恢复数据和主从数据库进行数据同步的。如果没有进行主从数据库,可以通过修改配置文件让mysql关闭记录操作日志功能,关闭只需要在log-bin=mysql-bin前加上一个“#”即可,不要忘记重启mysql服务。
清理日志方法为:
代码如下 | |
PURGE MASTER LOGS TO 'mysql-bin.000013'; |
另外可以通过 RESET MASTER 来删除整个日志文件,注意,如果使用主从数据库,在操作前先确保从数据库已经完全同步了主数据库的数据。
上述命令都是登陆到mysql后执行的。
很多人安装的mysql是开启了日志文件记录的,一般有比较频繁的mysql数据库操作就会产生大量的日志文件在/usr/local/mysql/var/下面,一般产生的日志文件都类似如下:
-rw-rw—- 1 mysql mysql 2.0M Sep 28 17:08 mysql-bin.000001
-rw-rw—- 1 mysql mysql 1.1G Nov 13 14:43 mysql-bin.000002
-rw-rw—- 1 mysql mysql 1.1G Nov 13 15:17 mysql-bin.000003
-rw-rw—- 1 mysql mysql 561M Nov 13 15:52 mysql-bin.000004
-rw-rw—- 1 mysql mysql 904K Nov 13 16:07 mysql-bin.000005
-rw-rw—- 1 mysql mysql 194M Nov 16 16:40 mysql-bin.000006
-rw-rw—- 1 mysql mysql 123M Nov 18 19:18 mysql-bin.000007
-rw-rw—- 1 mysql mysql 456 Nov 16 16:41 mysql-bin.index
从上面可以看到,这些mysql-bin.00000* 类似的文件有的体积非常大,而且一般都在几十MB到几个GB,更甚会吃掉整个硬盘空间,从来导致mysql无法启动或报错,所以在没有必要的情况下我们是可以不用开启日志文件的。
先说下删除mysql日志的方法:
执行:/usr/local/mysql/bin/mysql -u root -p
输入密码登录后再执行:
代码如下 | |
reset master; |
这样就可以了,当然也可以手动删除,但是可能会产生一些副作用,我没去证实过。
这些文件是mysql记录的日志文件,用于数据库崩溃后恢复数据和主从数据库进行数据同步的。如果没有进行主从数据库,可以通过修改配置文件让mysql关闭记录操作日志功能,那如何避免以后再产生这些文件呢,如何关闭mysql的日志功能呢?
方法如下:
代码如下 | |
vi /etc/my.cnf |
找到:
代码如下 | |
log-bin=mysql-bin |
将这行注释掉,前面加上#,再重启mysql就可以了。
假如说你是手工删除的mysql日志文件(mysql-bin.00000*)发现mysql启动不了,那么你看一下mysql-bin.index这个文件是否还存在,如果还存在的话就将mysql-bin.index也删除,然后就可以正常启动了。
其他清理方法(登录数据库情况下):
代码如下 | |
PURGE MASTER LOGS TO ‘mysql-bin.000013′; |