使用参数自动清除二进制日志
默认情况下,MySQL不会移除旧的不运行的二进制日志,expire_logs_days参数可以自动移除二进制日志,该参数默认值是0,意味着
不会自动移除二进制日志。给该参数赋大于0的值将会移除那些大于这个值的日志,以天为单位。
手动清除二进制日志
清除特定文件
清除特定日志或时间
物理删除二进制日志
rm -rf mysql-bin-3306.000005
如果一个二进制日志被从文件系统直接删除,及时这个文件已经不在文件系统中,MySQL会在一个带有0字节的文件中显示一个指针。后续再次使用purge命令删除二进制日志时候,会有以下提示:
默认情况下,MySQL不会移除旧的不运行的二进制日志,expire_logs_days参数可以自动移除二进制日志,该参数默认值是0,意味着
不会自动移除二进制日志。给该参数赋大于0的值将会移除那些大于这个值的日志,以天为单位。
手动清除二进制日志
清除特定文件
点击(此处)折叠或打开
- mysql> purge binary logs to 'mysql-bin-3306.000005';
- Query OK, 0 rows affected (0.08 sec)
点击(此处)折叠或打开
- mysql> purge binary logs before '2017-09-25 12:30:00';
- Query OK, 0 rows affected (0.01 sec)
rm -rf mysql-bin-3306.000005
点击(此处)折叠或打开
- mysql> show master logs;
- +-----------------------+-----------+
- | Log_name | File_size |
- +-----------------------+-----------+
- | mysql-bin-3306.000005 | 0 |
- | mysql-bin-3306.000006 | 604 |
- | mysql-bin-3306.000007 | 891 |
- | mysql-bin-3306.000008 | 346 |
- | mysql-bin-3306.000009 | 35946018 |
- +-----------------------+-----------+
点击(此处)折叠或打开
- mysql> purge binary logs to 'mysql-bin-3306.000006';
- Query OK, 0 rows affected, 1 warning (0.02 sec)
- mysql> show warings \G
- ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'warings' at line 1
- mysql> show master logs;
- +-----------------------+-----------+
- | Log_name | File_size |
- +-----------------------+-----------+
- | mysql-bin-3306.000006 | 604 |
- | mysql-bin-3306.000007 | 891 |
- | mysql-bin-3306.000008 | 346 |
- | mysql-bin-3306.000009 | 35946018 |
- +-----------------------+-----------+
- 4 rows in set (0.00 sec)
MySQL的二进制日志管理包括使用expire_logs_days参数自动清除和通过purge命令手动清除。自动清除可通过设置expire_logs_days参数大于0来实现,手动清除则可以指定具体文件或时间点。直接物理删除二进制日志后,MySQL可能仍会显示已删除日志的记录,使用purge命令时需注意。
510

被折叠的 条评论
为什么被折叠?



