mysql清除bin-log日志

2019-05-16 20:30:00
赵勤松
原创
1475
摘要:mysql服务器经过长时间的运行,会产生许多的bin-log日志,如果做了完整的数据备份,我们就可以定时清除这些日志了。

在mysql的对应目录下,通过ls -l命令,我们可以看到很多的bin-log文件(这里是master-bin*形式的文件,默认为log-bin*形式的,可以my.cnf文件中设定)。


[root@test01 mysql]# ls -l
total xxxxx
-rw-rw---- 1 mysql mysql  758657714 Jan 17 13:34 master-bin.000001
-rw-rw---- 1 mysql mysql 1073741900 Feb 27 13:06 master-bin.000002
-rw-rw---- 1 mysql mysql 1073822148 Apr  3 23:57 master-bin.000003
-rw-rw---- 1 mysql mysql 1073742064 May 14 13:34 master-bin.000004
......
-rw-rw---- 1 mysql mysql   41160589 May 16 11:12 master-bin.000016
-rw-rw---- 1 mysql mysql        100 May 14 15:10 master-bin.index

我们当然可以通过rm命令直接删除,这里介绍使用mysql命令删除的方法。

进入mysql命令行模式(需要确认自己有操作权限)后,先使用show master status命令确认当前正在使用的log文件名

MariaDB [test]> show master status\G
*************************** 1. row ***************************
            File: master-bin.000016
        Position: 74676
    Binlog_Do_DB: 
Binlog_Ignore_DB: mysql,test
1 row in set (0.00 sec)
可以看到当前使用的bin-log日志为master-bin.000016,目前假设刚做完了完整的数据备份,可以清除16之前的所有日志文件。

在此也可用mysql命令来确认当前的日志列表

MariaDB [test]> show binary logs;
+-------------------+------------+
| Log_name          | File_size  |
+-------------------+------------+
| master-bin.000001 |  758657714 |
| master-bin.000002 | 1073741900 |
| master-bin.000003 | 1073822148 |
......
| master-bin.000016 |   41321533 |
+-------------------+------------+
5 rows in set (0.00 sec)
            

接着输入如下命令

MariaDB [test]> purge binary logs to 'master-bin.000016';
Query OK, 0 rows affected (0.08 sec)
MariaDB [test]> show binary logs;
+-------------------+-----------+
| Log_name          | File_size |
+-------------------+-----------+
| master-bin.000016 |     74676 |
+-------------------+-----------+
1 row in set (0.00 sec)
可以看到,其他的日志已经成功清除了。

文章分类
联系我们
联系人: powereye
Email: zqs@someapp.cn
QQ: 1134846
微信: powereye