0


MySQL安全删除binlog日志

MySQL安全删除binlog日志


文章目录


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

show master status # 主库
show slave status # 分库

在这里插入图片描述

2. 查看二进制日志

show binary logs;
或
show master logs;
或
show slave logs;

在这里插入图片描述

3. 查询binlog日志

  • 查询第一个binlog日志
show binlog events;
  • 查询指定binlog日志
show binlog events in 'mysql-bin.000001'

在这里插入图片描述

4. 安全清理binlog日志

可以直接删除 binlog 文件,但是可以通过 mysql 提供的工具来删除更安全,因为purge 会更新 mysql-bin.index中的条目,而直接删除的话,mysql-bin.index文件不会更新。mysql-bin.index的作用是加快查找binlog文件的速度。

purge binary logs to 'mysql-bin.012391';#删除 'mysql-bin.012390'前日志,保留 'mysql-bin.012390'
PURGE binary LOGS BEFORE '2023-08-13 03:00:00';#清除2023-08-13 03:00:00前binlog日志  
PURGE binary LOGS BEFORE DATE_SUB( NOW(), INTERVAL 3 DAY);#清除3天前binlog日志  
  • 清理前在这里插入图片描述
  • 清理中> 使用:PURGE binary LOGS BEFORE DATE_SUB( NOW( ), INTERVAL 3 DAY);在这里插入图片描述
  • 清理后在这里插入图片描述
  • 执行“reset master;”命令,该命令将删除所有二进制日志,新日志的编号从“000001”开始,命令如下reset master;在这里插入图片描述

5. 设置自动清理MySQL binlog日志

若想一劳永逸可以配置自动清理,需要在MySQL配置文件my.cnf中配置

5.1 永久生效

在my.cnf中配置"expire_logs_days"参数

-- 1. CentOS默认位置/etc/my.cnf 
[root@localhost log]# vim /etc/my.cnf -- 2. 在[mysqld]下配置

-- 3. 自动清理15天前的binlog,默认值为0,表示从不删除。 
expire_logs_days = 15

-- 4. 配置后需要重启MySQL数据库

5.2 临时生效

进入MySQL,用以下命令设置全局的参数:set global expire_logs_days = 15;

标签: mysql 数据库

本文转载自: https://blog.csdn.net/dajun_x/article/details/132315578
版权归原作者 炎方 所有, 如有侵权,请联系我们删除。

“MySQL安全删除binlog日志”的评论:

还没有评论