一,要清理日志,需按照以下步骤:
1. 在每个从属服务器上,使用SHOW SLAVE STATUS来检查它正在读取哪个日志。
2. 使用SHOW MASTER LOGS获得主服务器上的一系列日志。

从属服务器正在使用的日志不能删

二,删除:

查找当前有哪些二进制日志文件:

mysql> show binary logs;

+-------------------+-----------+

| Log_name | File_size |

+-------------------+-----------+

| mysqld-bin.000004 | 142 |

| mysqld-bin.000005 | 142 |

| mysqld-bin.000006 | 142 |

| mysqld-bin.000007 | 142 |

| mysqld-bin.000008 | 142 |

| mysqld-bin.000009 | 142 |

| mysqld-bin.000010 | 98 |

+-------------------+-----------+

7 rows in set (0.00 sec)

删除指定的日志

例如删除mysqld-bin.000007以前的日志,注意不包括mysqld-bin.000007在内

mysql> purge binary logs to 'mysqld-bin.000007';

Query OK, 0 rows affected (0.01 sec)

mysql> show binary logs;

+-------------------+-----------+

| Log_name | File_size |

+-------------------+-----------+

| mysqld-bin.000007 | 142 |

| mysqld-bin.000008 | 142 |

| mysqld-bin.000009 | 142 |

| mysqld-bin.000010 | 98 |

+-------------------+-----------+

4 rows in set (0.00 sec)

查看被删除日志的信息(可选)

mysql> show binlog events;

+-------------------+-----+-------------+-----------+-------------+---------------------------------------+

| Log_name | Pos | Event_type | Server_id | End_log_pos | Info |

+-------------------+-----+-------------+-----------+-------------+---------------------------------------+

| mysqld-bin.000007 | 4 | Format_desc | 2 | 98 | Server ver: 5.0.75-log, Binlog ver: 4 |

| mysqld-bin.000007 | 98 | Rotate | 2 | 142 | mysqld-bin.000008;pos=4 |

+-------------------+-----+-------------+-----------+-------------+---------------------------------------+

2 rows in set (0.00 sec)

还可以指定日期删除

例如删除2009年7月22日10:11:00之前的日志

mysql> purge master logs before '2009-07-22 10:11:00';

Query OK, 0 rows affected (0.00 sec)

mysql> show binary logs;

+-------------------+-----------+

| Log_name | File_size |

+-------------------+-----------+

| mysqld-bin.000009 | 142 |

| mysqld-bin.000010 | 98 |

+-------------------+-----------+

2 rows in set (0.00 sec)

也可是按天删除

例如删除3天前的 binlog

purge master logs before date_sub( now( ), interval 3 day);

before变量的date自变量可以为'YYYY-MM-DD hh:mm:ss'格式。

三,总结

用于删除列于在指定的日志或日期之前的日志索引中的所有二进制日志。这些日志也会从记录在日志索引文件中的清单中被删除,这样被给定的日志成为第一个。

如果您有一个活性的从属服务器,该服务器当前正在读取您正在试图删除的日志之一,则本语句不会起作用,而是会失败,并伴随一个错误。不过,如果从属服务器是休止的,并且您碰巧清理了其想要读取的日志之一,则从属服务器启动后不能复制。当从属服务器正在复制时,本语句可以安全运行。您不需要停止它们。