方法1 RESET MASTER;

解释:

该方法可以删除列于索引文件中的所有二进制日志,把二进制日志索引文件重新设置为空,并创建一个以.000001为后缀新的二进制日志文件。
该语法一般只用在主从环境下初次建立复制时。
在主从复制进行过程中,该语句是无效的。 主从环境下的配置步骤:
a. 启动master和slave,开启replication(即复制)
b. 在master上运行一些测试的语句,看数据是否能够复制到 slave上面
c. 当复制运行正常的话,就在从上stop slave 然后执行 reset slave,去掉不需要的数据
d. 在master上面执行reset master 清除测试产生的数据
查看删除前日志
MariaDB [cndba]> system ls -ltr /data/mysql10.2.11/mysql-bin*
-rw-rw----. 1 mysql mysql 3543 Dec 15 11:41 /data/mysql10.2.11/mysql-bin.000001
-rw-rw----. 1 mysql mysql 342 Dec 15 11:41 /data/mysql10.2.11/mysql-bin.000002
-rw-rw----. 1 mysql mysql 38 Dec 15 11:41 /data/mysql10.2.11/mysql-bin.index
用RESET MASTER命令进行删除
MariaDB [cndba]> RESET MASTER;
查看删除后的日志
MariaDB [cndba]> system ls -ltr /data/mysql10.2.11/mysql-bin*
-rw-rw----. 1 mysql mysql 328 Dec 15 11:42 /data/mysql10.2.11/mysql-bin.000001
-rw-rw----. 1 mysql mysql 19 Dec 15 11:42 /data/mysql10.2.11/mysql-bin.index

方法2:PURGE MASTER LOGS

   语法:
PURGE { BINARY | MASTER } LOGS
{ TO 'log_name' | BEFORE datetime_expr }
用于删除列于在指定的日志或日期之前的日志索引中的所有二进制日志。这些日志也会从记录在日志索引文件中的清单中被删除,这样被给定的日志成为第一个。
实例:
PURGE BINARY LOGS TO 'mysql-bin.000002';
PURGE BINARY LOGS BEFORE '2017-12-15 11:53:59';
分别表示:删除mysql-bin.000002之前的日志(不包括mysql-bin.000002)
删除2014-04-28 23:59:59时间点之前的日志 注意事项:
在删除binlog日志同时,也会清理mysql-bin.index的文件记录,清理完后命令中指定的日志文件成为第一个。
主从架构下,如果复制正在进行中,执行该命令是安全的,例如slave正在读取我们要删除的log,该语句将什么也不会做,并返回一个错误;如果复制是停止的,我们删除了一个slave还未读取的日志,则复制重新建立连接时将会失败。
建议操作步骤: a 在每个从属服务器上,使用SHOW SLAVE STATUS来检查它正在读取哪个日志。
b 使用SHOW MASTER LOGS获得主服务器上的一系列日志。
c 在所有的从属服务器中判定最早的日志。这个是目标日志。如果所有的从属服务器是最新的,这是清单上的最后一个日志。
d 备份您将要删除的所有日志。(这个步骤是自选的,但是建议采用。)
e 清理除目标日志之外的所有日志。

方法3 手动删除binlog日志文件

手动删除binlog日志文件
删除mysql-bin.000003 日志
[root@maridb1 mysql10.2.11]# rm -rf mysql-bin.000003
[root@maridb1 mysql10.2.11]# vi mysql-bin.index
./mysql-bin.000003
./mysql-bin.000004
删除./mysql-bin.000003 这一行
查看删除后的日志
MariaDB [(none)]> system ls -ltr /data/mysql10.2.11/mysql-bin*
-rw-rw----. 1 mysql mysql 328 Dec 15 11:58 /data/mysql10.2.11/mysql-bin.000004
-rw-rw----. 1 mysql mysql 19 Dec 15 11:58 /data/mysql10.2.11/mysql-bin.index

方法4:指定过期天数(expire_logs_days)

MariaDB [(none)]> show variables like 'expire_logs_days';
+------------------+-------+
| Variable_name | Value |
+------------------+-------+
| expire_logs_days | 0 |
+------------------+-------+
1 row in set (0.00 sec)
临时修改过期时间
MariaDB [(none)]> set global expire_logs_days = 60;
Query OK, 0 rows affected (0.00 sec) MariaDB [(none)]> show variables like 'expire_logs_days';
+------------------+-------+
| Variable_name | Value |
+------------------+-------+
| expire_logs_days | 60 |
+------------------+-------+
1 row in set (0.00 sec)
修改/etc/my.cnf 增加参数
expire_logs_days=60
重启mysql 服务生效
刷新日志查看,日志被清楚
MariaDB [(none)]> flush logs;
Query OK, 0 rows affected (0.03 sec) MariaDB [(none)]> show master logs;
+------------------+-----------+
| Log_name | File_size |
+------------------+-----------+
| mysql-bin.000006 | 371 |
+------------------+-----------+
3 rows in set (0.00 sec) 注意事项
在双机复制环境下,应确保过期天数不应小于从机追赶主机binlog日志的时间。 触发过期删除的条件
每次进行 LOG flush的时候会自动删除过期的日志。
触发log flush的条件为:
1. 重启mysql;
2. BINLOG文件大小达到参数max_binlog_size限制;
3. 手工执行命令。

总结

1、我们一般情况采取第三、第四种方式

2、每次执行命令不需重启即可清楚超期日志

Mysql 删除binlog日志方法的更多相关文章

  1. mysql做了主从,删除binlog日志

    在主服务器操作: 1.查看当前主从库是用哪个binlog日志在做组从 show master status show  slave status 2.查看主库的binlog日志 show master ...

  2. 删除binlog的方法

    不知道你有没有为mysql的binlog占用大量磁盘感到无奈,my.cnf里binlog的size可以设置多大做分割,但没有看到删除的配置,在mysql里show了一下variables, mysql ...

  3. MySQL二进制binlog日志说明以及利用binlog日志恢复数据

    MySQL的binlog日志对于mysql数据库来说是十分重要的.在数据丢失的紧急情况下,我们往往会想到用binlog日志功能进行数据恢复(定时全量备份+binlog日志恢复增量数据部分). 一.关于 ...

  4. mysql清理binlog日志

    mysql的binlog日志过多过大,清理过程. 1.查看binlog日志 mysql> show binary logs; +------------------+-----------+ | ...

  5. Mysql利用binlog日志恢复数据操作(转)

    a.开启binlog日志:1)编辑打开mysql配置文件/etc/mys.cnf[root@vm-002 ~]# vim /etc/my.cnf在[mysqld] 区块添加 log-bin=mysql ...

  6. mysql 开启binlog日志,恢复误删的表、数据、mysql库

    linux下开启mysql的binlog日志功能 1.配置mysql配置文件my.cnf(内容如下). #配置文件储存的位置log-bin=mysql-bin#5.7以及以上版本需要配置这一行(保证唯 ...

  7. mysql通过binlog日志来恢复数据

    简介 在生产的过程中有这么一个业务场景:比如我在2016-11-19 09:30:00 通过mysqldump的方式备份了数据库,但是在2016-11-19 10:30:00的时候数据库崩溃了,如果通 ...

  8. 20180530利用Maxwell组件实时监听Mysql的binlog日志

    转自:https://blog.csdn.net/qq_30921461/article/details/78320750 http://kafka.apache.org/quickstart htt ...

  9. 查看mysql的bin-log日志

    1.查看有哪些binlog show binary logs; show master logs; 2.如何查看log_bin中的内容 show binlog events; 查看第一个binlog的 ...

  10. mysql将bin-log日志文件转为sql文件

    查看mysqlbinlog版本 mysqlbinlog -V [--version] 查看binlog日志开启状态 show variables like '%log_bin%'; mysql打开bi ...

随机推荐

  1. FinClip 小程序的自有账户体系是怎么做的?

    随着公司规模越来越大,员工需要使用的产品矩阵也会越来越丰富,不仅包括内部的 IT 系统,OA 系统,业务系统,还会有很多和外部产品集成的登录流程,更别提各种业务系统或者子系统中的账户体系了.如果使用简 ...

  2. Linux策略路由详解

    概述 在Linux中,我们通常使用route命令来做路由信息的管理.但是该命令仅仅只能用于基本路由信息的管理,面对功能更加强大的基于策略的路由机制,route命令就显得捉襟见肘.在传统路由算法中,只能 ...

  3. 小Min_25筛小记🐤

    这里的小Min_25筛,可以筛出 $10^11$ 以内所有质数的完全积性函数之和 注意事项: 1. cmd 的题解里面下标写得不清楚,应该是 $S'(p_k-1,k-1)$ 而不是 $S'(p_{k- ...

  4. echarts饼状图自定义legend的样式付费

    先看效果图 代码 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> < ...

  5. 01uni-app的创建运行在不同端上的配置 以及tarBar的配置

    uni-app的创建### 01==>创建uni-app的项目非常简单.不需要注意什么注意点哈!! 创建项目的时候 可以参考官网 https://uniapp.dcloud.io/quickst ...

  6. Golang并发控制方式有几种?

    Go语言中的goroutine是一种轻量级的线程,其优点在于占用资源少.切换成本低,能够高效地实现并发操作.但如何对这些并发的goroutine进行控制呢? 一提到并发控制,大家最先想到到的是锁.Go ...

  7. iphone(ios)不同设备的内存和游戏不闪退峰值

    ios内存限制 不同内存的苹果机型上(1G,2G,3G,4G-),游戏内存的峰值一般最高多少能保证不闪退? 一般来讲最保险的就是不超过机器总内存的50%,具体每个机型的内存限制在列出在下面. 原贴:& ...

  8. 机器学习算法(四): 基于支持向量机的分类预测(SVM)

    机器学习算法(四): 基于支持向量机的分类预测 本项目链接:https://www.heywhale.com/home/column/64141d6b1c8c8b518ba97dcc 1.相关流程 支 ...

  9. Redis安装及使用详解篇

    一.什么是Redis? Redis(Remote Dictionary Server ),即远程字典服务. Redis是是现在最受欢迎的NoSQL数据库之一,是一种支持key-value等多种数据结构 ...

  10. ubuntu16.04编译安装nginx1.24.0

    环境: Distributor ID: Ubuntu Description: Ubuntu 16.04.7 LTS Release: 16.04 Codename: xenial 安装包: pcre ...