需求描述:

在mysql中如何删除binlog,因为随着数据库的运行,mysql中产生的binlog会越来越大,有可能把磁盘撑爆了,所以记录下删除

binlog的方法.

操作过程:

1.通过系统参数控制保留多久的binlog

在my.cnf中,加入以下的参数,重启实例

expire_logs_days = 3 #意思是保留3天的binlog;默认值是0,表示不自动删除.

备注:设置完该参数之后,当重启实例,或者刷新日志的时候,就会进行检查,然后删除3天之前的日志

2.测试在刷新日志的时候,触发删除

2.1查看当前系统中的二进制文件

[root@testvm data]# ls -ltr mysql-bin.*

-rw-r----- 1 mysql mysql 177 Jul 25 11:58 mysql-bin.000001

-rw-r----- 1 mysql mysql 201 Jul 25 12:17 mysql-bin.000002

-rw-r----- 1 mysql mysql 201 Jul 25 12:17 mysql-bin.000003

-rw-r----- 1 mysql mysql 201 Jul 25 12:17 mysql-bin.000004

-rw-r----- 1 mysql mysql 201 Jul 25 12:17 mysql-bin.000005

-rw-r----- 1 mysql mysql 154 Jul 25 12:17 mysql-bin.000006

-rw-r----- 1 mysql mysql 114 Jul 25 12:17 mysql-bin.index

2.2修改系统时间为3天之后

[root@testvm data]# date -s "2018-07-28 12:15:00"

Sat Jul 28 12:15:00 CST 2018

[root@testvm data]# clock -w

2.3执行flush logs刷新日志

[root@testvm data]# ls -ltr mysql-bin.*

-rw-r----- 1 mysql mysql 201 Jul 25 12:17 mysql-bin.000002 #1这个日志已经被删除了.

-rw-r----- 1 mysql mysql 201 Jul 25 12:17 mysql-bin.000003

-rw-r----- 1 mysql mysql 201 Jul 25 12:17 mysql-bin.000004

-rw-r----- 1 mysql mysql 201 Jul 25 12:17 mysql-bin.000005

-rw-r----- 1 mysql mysql 201 Jul 28 12:15 mysql-bin.000006

-rw-r----- 1 mysql mysql 154 Jul 28 12:15 mysql-bin.000007

-rw-r----- 1 mysql mysql 114 Jul 28 12:15 mysql-bin.index

2.4查看文件时间,执行flush logs操作

[root@testvm data]# stat mysql-bin.000002

File: `mysql-bin.000002'

Size: 201 Blocks: 8 IO Block: 4096 regular file

Device: fd00h/64768dInode: 276736 Links: 1

Access: (0640/-rw-r-----) Uid: ( 502/ mysql) Gid: ( 502/ mysql)

Access: 2018-07-28 12:15:31.539000285 +0800

Modify: 2018-07-25 12:17:39.528999883 +0800

Change: 2018-07-25 12:17:39.528999883 +0800

[root@testvm data]# ls -ltr mysql-bin.*

-rw-r----- 1 mysql mysql 201 Jul 25 12:17 mysql-bin.000002

-rw-r----- 1 mysql mysql 201 Jul 25 12:17 mysql-bin.000003

-rw-r----- 1 mysql mysql 201 Jul 25 12:17 mysql-bin.000004

-rw-r----- 1 mysql mysql 201 Jul 25 12:17 mysql-bin.000005

-rw-r----- 1 mysql mysql 201 Jul 28 12:15 mysql-bin.000006

-rw-r----- 1 mysql mysql 201 Jul 28 12:17 mysql-bin.000007

-rw-r----- 1 mysql mysql 154 Jul 28 12:17 mysql-bin.000008 #这个生成时间减去标记为黄色的时间必须大于3天,黄色对应的文件才会被删除.

-rw-r----- 1 mysql mysql 133 Jul 28 12:17 mysql-bin.index

[root@testvm data]# date

Sat Jul 28 12:18:08 CST 2018

[root@testvm data]# ls -ltr mysql-bin.*

-rw-r----- 1 mysql mysql 201 Jul 28 12:15 mysql-bin.000006

-rw-r----- 1 mysql mysql 201 Jul 28 12:17 mysql-bin.000007

-rw-r----- 1 mysql mysql 201 Jul 28 12:18 mysql-bin.000008

-rw-r----- 1 mysql mysql 154 Jul 28 12:18 mysql-bin.000009 #18分执行的时候,3天前的17分的文件就都被删除了.

-rw-r----- 1 mysql mysql 76 Jul 28 12:18 mysql-bin.index

备注:经过测试,就是,当刷新日志时(写满日志文件或者手动执行flush logs操作),在这个时间3天之前的binlog文件都会被删除.即执行刷新日志时,减去3天,binlog的时间小于这个的都会被删除.同时呢,当系统启动的时候也会执行flush logs操作,也会触发这个删除binlog的动作.

3.通过puge binary logs命令来进行删除

3.1查看当前binlog的信息

mysql> show binary logs;

+------------------+-----------+

| Log_name | File_size |

+------------------+-----------+

| mysql-bin.000006 | 201 |

| mysql-bin.000007 | 201 |

| mysql-bin.000008 | 201 |

| mysql-bin.000009 | 201 |

| mysql-bin.000010 | 201 |

| mysql-bin.000011 | 201 |

| mysql-bin.000012 | 201 |

| mysql-bin.000013 | 201 |

| mysql-bin.000014 | 201 |

| mysql-bin.000015 | 201 |

| mysql-bin.000016 | 201 |

| mysql-bin.000017 | 201 |

| mysql-bin.000018 | 201 |

| mysql-bin.000019 | 201 |

| mysql-bin.000020 | 201 |

| mysql-bin.000021 | 154 |

+------------------+-----------+

16 rows in set (0.00 sec)

3.2purge删除binlog

mysql> purge binary logs to 'mysql-bin.000017';

Query OK, 0 rows affected (0.01 sec)

mysql> show binary logs;

+------------------+-----------+

| Log_name | File_size |

+------------------+-----------+

| mysql-bin.000017 | 201 |

| mysql-bin.000018 | 201 |

| mysql-bin.000019 | 201 |

| mysql-bin.000020 | 201 |

| mysql-bin.000021 | 154 |

+------------------+-----------+

5 rows in set (0.00 sec)

备注:通过查询结果可以知道,在17之前的日志都被清除了.不包括17本身.切记!

4.切记不能在操作系统上直接删除binlog文件,虽然释放了空间,但是在Index中,还是有记录.

[root@testvm data]# ls -ltr mysql-bin.*

-rw-r----- 1 mysql mysql 201 Jul 28 12:42 mysql-bin.000017

-rw-r----- 1 mysql mysql 201 Jul 28 12:42 mysql-bin.000018

-rw-r----- 1 mysql mysql 201 Jul 28 12:42 mysql-bin.000019

-rw-r----- 1 mysql mysql 201 Jul 28 12:42 mysql-bin.000020

-rw-r----- 1 mysql mysql 201 Jul 28 12:45 mysql-bin.000021

-rw-r----- 1 mysql mysql 201 Jul 28 12:45 mysql-bin.000022

-rw-r----- 1 mysql mysql 201 Jul 28 12:45 mysql-bin.000023

-rw-r----- 1 mysql mysql 201 Jul 28 12:45 mysql-bin.000024

-rw-r----- 1 mysql mysql 201 Jul 28 12:45 mysql-bin.000025

-rw-r----- 1 mysql mysql 201 Jul 28 12:45 mysql-bin.000026

-rw-r----- 1 mysql mysql 201 Jul 28 12:45 mysql-bin.000027

-rw-r----- 1 mysql mysql 201 Jul 28 12:45 mysql-bin.000028

-rw-r----- 1 mysql mysql 201 Jul 28 12:45 mysql-bin.000029

-rw-r----- 1 mysql mysql 201 Jul 28 12:45 mysql-bin.000030

-rw-r----- 1 mysql mysql 201 Jul 28 12:45 mysql-bin.000031

-rw-r----- 1 mysql mysql 201 Jul 28 12:45 mysql-bin.000032

-rw-r----- 1 mysql mysql 154 Jul 28 12:45 mysql-bin.000033

-rw-r----- 1 mysql mysql 323 Jul 28 12:45 mysql-bin.index

[root@testvm data]# rm -f mysql-bin.000017 mysql-bin.000018 mysql-bin.000019 mysql-bin.000020

[root@testvm data]# ls -ltr mysql-bin.*

-rw-r----- 1 mysql mysql 201 Jul 28 12:45 mysql-bin.000021

-rw-r----- 1 mysql mysql 201 Jul 28 12:45 mysql-bin.000022

-rw-r----- 1 mysql mysql 201 Jul 28 12:45 mysql-bin.000023

-rw-r----- 1 mysql mysql 201 Jul 28 12:45 mysql-bin.000024

-rw-r----- 1 mysql mysql 201 Jul 28 12:45 mysql-bin.000025

-rw-r----- 1 mysql mysql 201 Jul 28 12:45 mysql-bin.000026

-rw-r----- 1 mysql mysql 201 Jul 28 12:45 mysql-bin.000027

-rw-r----- 1 mysql mysql 201 Jul 28 12:45 mysql-bin.000028

-rw-r----- 1 mysql mysql 201 Jul 28 12:45 mysql-bin.000029

-rw-r----- 1 mysql mysql 201 Jul 28 12:45 mysql-bin.000030

-rw-r----- 1 mysql mysql 201 Jul 28 12:45 mysql-bin.000031

-rw-r----- 1 mysql mysql 201 Jul 28 12:45 mysql-bin.000032

-rw-r----- 1 mysql mysql 154 Jul 28 12:45 mysql-bin.000033

-rw-r----- 1 mysql mysql 323 Jul 28 12:45 mysql-bin.index

在mysql中查询binlog信息

mysql> show binary logs;

+------------------+-----------+

| Log_name | File_size |

+------------------+-----------+

| mysql-bin.000017 | 0 |

| mysql-bin.000018 | 0 |

| mysql-bin.000019 | 0 |

| mysql-bin.000020 | 0 |

| mysql-bin.000021 | 201 |

| mysql-bin.000022 | 201 |

| mysql-bin.000023 | 201 |

| mysql-bin.000024 | 201 |

| mysql-bin.000025 | 201 |

| mysql-bin.000026 | 201 |

| mysql-bin.000027 | 201 |

| mysql-bin.000028 | 201 |

| mysql-bin.000029 | 201 |

| mysql-bin.000030 | 201 |

| mysql-bin.000031 | 201 |

| mysql-bin.000032 | 201 |

| mysql-bin.000033 | 154 |

+------------------+-----------+

17 rows in set (0.00 sec)

备注:还记录了文件的名字,但是文件的大小是0byte.

查看index中的记录信息

[root@testvm data]# cat mysql-bin.index

./mysql-bin.000017

./mysql-bin.000018

./mysql-bin.000019

./mysql-bin.000020

./mysql-bin.000021

./mysql-bin.000022

./mysql-bin.000023

./mysql-bin.000024

./mysql-bin.000025

./mysql-bin.000026

./mysql-bin.000027

./mysql-bin.000028

./mysql-bin.000029

./mysql-bin.000030

./mysql-bin.000031

./mysql-bin.000032

./mysql-bin.000033

[root@testvm data]#

备注:index中还是记录该信息,认为还是存在的.

重新启动的时候,会检查文件是否存在,如果不在会报错:

mysqld: File './mysql-bin.000017' not found (Errcode: 2 - No such file or directory)

2018-07-28T04:49:02.619409Z 0 [ERROR] Failed to open log (file './mysql-bin.000017', errno 2)

2018-07-28T04:49:02.619416Z 0 [ERROR] Could not open log file

mysqld: File './mysql-bin.000018' not found (Errcode: 2 - No such file or directory)

2018-07-28T04:49:02.619426Z 0 [ERROR] Failed to open log (file './mysql-bin.000018', errno 2)

2018-07-28T04:49:02.619428Z 0 [ERROR] Could not open log file

mysqld: File './mysql-bin.000019' not found (Errcode: 2 - No such file or directory)

2018-07-28T04:49:02.619436Z 0 [ERROR] Failed to open log (file './mysql-bin.000019', errno 2)

2018-07-28T04:49:02.619438Z 0 [ERROR] Could not open log file

mysqld: File './mysql-bin.000020' not found (Errcode: 2 - No such file or directory)

2018-07-28T04:49:02.619445Z 0 [ERROR] Failed to open log (file './mysql-bin.000020', errno 2)

2018-07-28T04:49:02.619447Z 0 [ERROR] Could not open log file

备注:遇到这种问题,直接通过purge binary logs删除就行了.同时也会更新index文件

切记!!不要从操作系统上直接删除binlog!!!

文档创建时间:2018年7月19日16:02:00

删除binlog mysql_mysql中删除binlog的方法?mysql中如何删除binlog?相关推荐

  1. mysql中gt用法_讲解MySQL中lt;=gt;操作符的用法-一团网

    问题 : 我在看以前的一个开发者的代码时看到 在这个查询语句中 <=>符号是什么意思啊?是不是和 =号是一样啊?还是一个语法错误啊?但是没有显示任何错误或者异常.我已经知道了mysql中的 ...

  2. mysql 存储过程 rowcount_ORACLE中的SQL%ROWCOUNT与MySQL中的ROW_COUNT()的一点异同

    ORACLE中的SQL%ROWCOUNT与MySQL中的ROW_COUNT()的一点异同 MySQL的ROW_COUNT()和ORACLE中的SQL%ROWCOUNT函数作用并不完全相同. 从作用上来 ...

  3. mysql中用于删除数据的是什么意思_从mysql中删除数据最安全的方法是什么? (PHP / MySQL的)...

    我想允许用户和我(管理员)删除mysql中的数据. 我曾经有过remove.php,可以从需要删除的内容中获取$_GETs,例如- remove.php?action = post& post ...

  4. 在mysql中删除表正确的是什么_在MySQL中删除表的操作教程

    丢弃现有MySQL的表是很容易的.但是需要非常小心,删除任何现有的一个表后将无法恢复,因为数据丢失. 语法: 下面是通用的SQL语法丢弃(删除)MySQL表: DROP TABLE table_nam ...

  5. mysql中select使用方法,MySQL中select语句介绍及使用示例

    数据表都已经创建起来了,假设我们已经插入了许多的数据,我们就可以用自己喜欢的方式对数据表里面的信息进行检索和显示了,比如说:可以象下面这样把整个数据表内的内容都显示出来 select * from p ...

  6. python中列表的sort方法_python中列表的sort方法使用详解

    内容简介:python中列表的sort方法使用详解 一.基本形式 列表有自己的sort方法,其对列表进行原址排序,既然是原址排序,那显然元组不可能拥有这种方法,因为元组是不可修改的. 排序,数字.字符 ...

  7. java中容易混淆的方法_java中容易混淆的区别

    本文会随时更新一些java中容易混淆的关键字或者知识点,如有偏见之处,望留言! final和static的差别: 1,final的英语意思"最后的",在java中修饰类,方法和变量 ...

  8. java中无限循环的方法_Java中的无限循环

    Java中的无限循环 在Java中查看下面的无限while循环. 它会导致它下面的语句编译时错误. while(true) { System.out.println("inside whil ...

  9. oracle中函数怎么使用方法,Oracle中函数的使用

    1.decode () 例子:它的写法如下decode('a','b','c','d'),其中a,b,c,d可以是其他函数也可以是数值,依据我们自己的情况来使用,它的含义是如果a=b,那么结果显示c, ...

最新文章

  1. [php]apache虚拟主机配置
  2. Debian 和Ubuntu Mono 3.0 部署包
  3. USACO Training Section 1.2 双重回文数 Dual Palindrom
  4. 前端学习(2174):打包文件的分析
  5. 路飞学成-Python爬虫实战密训-第3章
  6. Zephyr下使用TFLite进行语音识别
  7. 【牛客网SQL篇】SQL必知必会
  8. poi导出excel 并实现合并单元格
  9. 张宇基础30讲 第17讲-元函数积分学基础知识
  10. pearson特征选择matlab,常用的特征选择方法之 Pearson 相关系数
  11. list to torch
  12. 错误The server cannot or will not process the request due to something that is perceived to be a clien
  13. 自律给你自由——Android设计布局的新姿势
  14. OSM数据分析及图形化显示以及各组员之间的关系Relation的存储
  15. 服务器主机安装win10系统稳定吗,服务器主机上安装win10
  16. getchar函数的用法
  17. Linux:内存泄漏检测工具--Valgrind
  18. 设某机为定长指令字结构,指令长度12位,每个地址码占3位,试提出一种分配方案……
  19. springboot物业管理系统的设计与实现
  20. MySQL ---允许所有ip远程连接数据库

热门文章

  1. java中向JTextArea中添加滚动条(垂直的和水平的)
  2. 对深拷贝与浅拷贝的再次理解
  3. 高级数据结构研究-B树系列以及红黑树
  4. boost智能指针之shared_ptr,scoped_ptr,intrusive_ptr,weak_ptr源码简析
  5. QTextCodec中的setCodecForTr等终于消失了 (Qt5)
  6. 四位达林顿_ULN2069B - 80 V - 1.5 A四路达林顿开关 - STMicroelectronics
  7. delphi 折叠代码 快捷键_我收藏的几个更快搬砖的vscode快捷键
  8. 多级菜单栏展开隐藏动画
  9. HBase 与Hive数据交互整合过程详解
  10. 在线即时通讯工具的网页即时聊天的html代码