删除MYSQl BIN-LOG 日志

1.查找当前有哪些二进制日志文件:
mysql> show binary
logs;

+------------------+-----------+
| Log_name | File_size
|

+------------------+-----------+
| mysql-bin.000001 | 1357315 |
|
mysql-bin.000002 | 117 |

| mysql-bin.000003 | 404002 |
|
mysql-bin.000004 | 2050722 |

| mysql-bin.000005 | 139103 |
|
mysql-bin.000006 | 46702 |

| mysql-bin.000007 | 117 |
| mysql-bin.000008
| 98 |

| mysql-bin.000009 | 117 |
| mysql-bin.000010 | 1254 |
|
mysql-bin.000011 | 117 |

| mysql-bin.000012 | 29394942 |
|
mysql-bin.000013 | 422100 |

| mysql-bin.000014 | 117 |
|
mysql-bin.000015 | 117 |

| mysql-bin.000016 | 98 |
| mysql-bin.000017 |
117 |

| mysql-bin.000018 | 117 |
| mysql-bin.000019 | 285300 |
|
mysql-bin.000020 | 181229 |

| mysql-bin.000021 | 98 |
+------------------+-----------+
21 rows in set (0.03
sec)


2.删除bin-log(删除mysql-bin.000018之前的所有二进制日志文件)
mysql> purge binary
logs to 'mysql-bin.000018';

Query OK, 0 rows affected (0.08 sec)

mysql>
show binary logs;

+------------------+-----------+
| Log_name | File_size
|

+------------------+-----------+
| mysql-bin.000018 | 117 |
|
mysql-bin.000019 | 285300 |

| mysql-bin.000020 | 181229 |
|
mysql-bin.000021 | 98 |

+------------------+-----------+
4 rows in set
(0.00 sec)

mysql> show binlog
events;

+------------------+-----+-------------+-----------+-------------+---------------------------------------+
|
Log_name | Pos | Event_type | Server_id | End_log_pos | Info
|

+------------------+-----+-------------+-----------+-------------+---------------------------------------+
|
mysql-bin.000018 | 4 | Format_desc | 1 | 98 | Server ver: 5.0.45-log, Binlog
ver: 4 |

| mysql-bin.000018 | 98 | Stop | 1 | 117 | |
+------------------+-----+-------------+-----------+-------------+---------------------------------------+
2
rows in set (0.01 sec)

删除说明:
如果没有主从复制,可以通过reset master的方式,重置数据库日志,清除之前的日志文件:

reset master;

但是如果存在复制关系,应当通过PURGE的方式来清理bin日志,语法如下:

PURGE {MASTER | BINARY} LOGS TO 'log_name'
PURGE {MASTER | BINARY} LOGS BEFORE 'date'

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

例如:

PURGE MASTER LOGS TO 'mysql-bin.010';
PURGE MASTER LOGS BEFORE '2014-08-30 00:00:00';  //清理该日期之前的数据
PURGE MASTER LOGS BEFORE DATE_SUB( NOW( ), INTERVAL 3 DAY);  //清除3天前的

此条目发表在db分类目录,贴了标签。将固定链接加入收藏夹。