MySQL中的binlog日志记录了数据库中数据的变动,便于对数据的基于时间点和基于位置的恢复,但是binlog也会日渐增大,占用很大的磁盘空间,因此,要对binlog使用正确安全的方法清理掉一部分没用的日志。


清理前的准备:

  1. 查看主库和从库正在使用的binlog是哪个文件

    1. show master status show slave status\G
  2. 在删除binlog日志之前,首先对binlog日志备份,以防万一

开始手动清除binlog,删除指定日期以前的日志

  1. purge master logs before '2022-6-6 10:18:00'; //删除指定日期以前的日志索引中binlog日志文件

  1. purge master logs to'mysql-bin.000022'; //删除指定日志文件的日志索引中binlog日志文件

注意:使用该语法,会将对应的文件和mysql-bin.index中对应路径删除
时间和文件名一定不可以写错,尤其是时间中的年和文件名中的序号,以防不下心将正在使用的binlog删除!!!切勿删除正在使用的binlog

  • reset master:将删除日志索引文件中记录的所有binlog文件,创建一个新的日志文件,起始值从000001开始。不要轻易使用该命令,这个命令通常仅仅用于第一次用于搭建主从关系的时的主库。
  • reset slave:清除master.info文件、relay-log.info文件,以及所有的relay log文件,并重新启用一个新的relaylog文件

使用reset slave之前必须使用stop slave 命令将复制进程停止。

参考
https://www.jb51.net/article/117819.htm
https://blog.csdn.net/zxssoft/article/details/80114475
https://blog.csdn.net/jesseyoung/article/details/40979129
https://www.cnblogs.com/kiko2014551511/p/11532426.html