MySQL安全删除binlog日志的详细步骤

 更新时间:2024年02月20日 08:32:13   作者:炎方  
如果你的 Mysql 搭建了主从同步,或者数据库开启了log-bin日志,那么随着时间的推移,你的数据库data目录下会产生大量的日志文件,下面这篇文章主要给大家介绍了关于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;

清除binlog对从mysql的影响

如果您有一个活性的从属服务器,该服务器当前正在读取您正在试图删除的日志之一,则本语句不会起作用,而是会失败,并伴随一个错误。

不过,如果从属服务器是休止的,并且您碰巧清理了其想要读取的日志之一,则从属服务器启动后不能复制。

总结

到此这篇关于MySQL安全删除binlog日志的文章就介绍到这了,更多相关MySQL安全删除binlog日志内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • MySQL 设计和命令行模式下建立详解

    MySQL 设计和命令行模式下建立详解

    这篇文章主要介绍了MySQL 设计和命令行模式下建立详解的相关资料,主要讲解了数据库的建立与数据表的设计,需要的朋友可以参考下
    2017-01-01
  • MySQL 详细单表增删改查crud语句

    MySQL 详细单表增删改查crud语句

    这篇文章主要介绍了MySQL 详细单表增删改查crud语句,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-08-08
  • MySQL之索引结构解读

    MySQL之索引结构解读

    这篇文章主要介绍了MySQL之索引结构解读,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-04-04
  • mysql筛选GROUP BY多个字段组合时的用法分享

    mysql筛选GROUP BY多个字段组合时的用法分享

    mysql筛选GROUP BY多个字段组合时的用法分享,需要的朋友可以参考下。
    2011-04-04
  • 从 MySQL源码分析网络IO模型

    从 MySQL源码分析网络IO模型

    这篇文章主要为大家介绍了从 MySQL源码分析网络IO模型,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-06-06
  • mysql数据自增ID为2的解决方案

    mysql数据自增ID为2的解决方案

    这篇文章主要介绍了mysql数据自增ID为2的解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-12-12
  • Linux下mysql 8.0安装教程

    Linux下mysql 8.0安装教程

    这篇文章主要为大家详细介绍了Linux下mysql 8.0安装教程,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-09-09
  • mysql5.7.19 winx64解压缩版安装配置教程

    mysql5.7.19 winx64解压缩版安装配置教程

    这篇文章主要为大家详细介绍了mysql5.7.19 winx64解压缩版安装配置教程,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-07-07
  • mysql占用CPU过高的解决办法(添加索引)

    mysql占用CPU过高的解决办法(添加索引)

    下面是MYSQL占用CPU高处理的一个例子,希望对遇到类似问题的朋友们有点启发。一般来说MYQL占用CPU高,多半是数据库查询代码问题,查询数据库过多。所以一方面要精简代码,另一方面最好对频繁使用的代码设置索引
    2013-03-03
  • 详解mysql数据库增删改操作

    详解mysql数据库增删改操作

    这篇文章主要介绍了mysql数据库增删改操作,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-04-04

最新评论