日期:2014-05-16  浏览次数:20815 次

详细介绍mysql-bin.000001文件的来源及处理方法

详细介绍mysql-bin.000001文件的来源及处理方法

本文主要介绍了MySQL数据库的mysql-bin.000001文件的来源及处理方法,希望能够对您有所帮助。

AD:

MySQL数据库中,mysql-bin.000001mysql- bin.000002等文件是数据库的操作日志,例如UPDATE一个表,或者DELETE一些数据,即使该语句没有匹配的数据,这个命令也会存储到日志文件中,还包括每个语句执行的时间,也会记录进去的。

这样做主要有以下两个目的:

1:数据恢复

如果你的数据库出问题了,而你之前有过备份,那么可以看日志文件,找出是哪个命令导致你的数据库出问题了,想办法挽回损失。

2:主从服务器之间同步数据

主服务器上所有的操作都在记录日志中,从服务器可以根据该日志来进行,以确保两个同步。

处理方法分两种情况:

1:只有一个mysql服务器,那么可以简单的注释掉这个选项就行了。

vi /etc/my.cnf把里面的log-bin这一行注释掉,重启mysql服务即可。

2:如果你的环境是主从服务器,那么就需要做以下操作了。

A:在每个从属服务器上,使用SHOW SLAVE STATUS来检查它正在读取哪个日志。

B:使用SHOW MASTER LOGS获得主服务器上的一系列日志。

C:在所有的从属服务器中判定最早的日志,这个是目标日志,如果所有的从属服务器是更新的,就是清单上的最后一个日志。

D:清理所有的日志,但是不包括目标日志,因为从服务器还要跟它同步。

清理日志方法为:

  1. PURGE?MASTER?LOGS?TO?'mysql-bin.010'; ?
  2. ?
  3. PURGE?MASTER?LOGS?BEFORE?'2008-12-19?21:00:00';?

如果你确定从服务器已经同步过了,跟主服务器一样了,那么可以直接RESET MASTER将这些文件删除。

======================================

之前发现自己10G的服务器空间大小,用了几天就剩下5G了,自己上传的文件才仅仅几百M而已,到底是什么东西占用了这么大空间呢?今天有时间彻底来查了一下:

详细介绍mysql-bin.000001文件的来源及处理方法

看下上面的目录web根目录是放在/home 里面的,所有文件加起来才不到300M,而服务器上已经占用了近5G空间,恐怖吧,最后经我一步一步查询得知,原来是这个文件夹占了非常多的空间资源:

详细介绍mysql-bin.000001文件的来源及处理方法

原来如此,是mysql文件夹下的var目录占用空间最大,那里面是啥 内容呢?我们来看下:

详细介绍mysql-bin.000001文件的来源及处理方法

发现了如此多的mysql-bin.0000X文件,这是什么东西呢?原来这是mysql的操作日志文件.我才几十M的数据库,操作日志居然快3G大小了。

如何删除mysql-bin.0000X 日志文件呢?

红色表示输入的命令.

  1. [root@jiucool?var]#?/usr/local/mysql/bin/mysql?-u?root?-p ?
  2. ?
  3. Enter?password:?(输入密码) ?
  4. ?
  5. Welcome?to?the?MySQL?monitor.?Commands?end?with?;?or?\g. ?
  6. ?
  7. Your?MySQL?connection?id?is?264001 ?
  8. ?
  9. Server?version:?5.1.35-log?Source?distribution ?
  10. ?
  11. Type?‘help;’?or?‘\h’?for?help.?Type?‘\c’?to?clear?the?current?input?statement. ?
  12. ?
  13. mysql>?reset?master;?(清除日志文件) ?
  14. ?
  15. Query?OK,?0?rows?affected?(8.51?sec) ?
  16. ?
  17. mysql>?

好了,我们再来查看下mysql文件夹占用多少空间?

  1. [root@jiucool?var]#?du?-h?–max-depth=1?/usr/local/mysq