MySQL在线删除多余的binlog文件
如果你的MySQL搭建了主从同步 , 或者数据库开启了log-bin日志(MySQL默认开启) , 那么随着时间的推移 , 你的数据库data 目录下会产生大量的日志文件
ll /opt/mysql/data/
-rw-rw----. 1 mysql mysql 63278 9月 11 02:03 mysql-bin.000001
-rw-rw----. 1 mysql mysql 10966 9月 11 02:03 mysql-bin.000002
-rw-rw----. 1 mysql mysql 133 9月 11 02:04 mysql-bin.000003
-rw-rw----. 1 mysql mysql 133 9月 12 02:00 mysql-bin.000004
-rw-rw----. 1 mysql mysql 271 9月 12 18:25 mysql-bin.000005
-rw-rw----. 1 mysql mysql 133 9月 12 18:55 mysql-bin.000006
-rw-rw----. 1 mysql mysql 133 9月 12 19:48 mysql-bin.000007
-rw-rw----. 1 mysql mysql 133 9月 12 21:21 mysql-bin.000008
-rw-rw----. 1 mysql mysql 321 9月 18 17:30 mysql-bin.000009
生产环境中这些文件都会很大,默认每个1G左右大小,长期不处理会占满硬盘空间
下面来介绍几种解决方法:
1、如果你的数据库没有搭建主从同步这样的服务 , binlog日志也不用的情况下 , 你可以将/etc/my.cnf文件下面行删除或注释掉
log-bin=mysql-bin
如果你需要这样的文件 , 那么建议你在主配置文件 /etc/my.cnf 中添加如下行 , 来限制 binlog日志文件存在时间 , 过期自动删除
expire_logs_days = 7 #只保留7天的日志文件
2、如果你服务器上面的binlog日志已经影响到了磁盘空间,那么你可以使用下面命令清除
mysql> reset master; #清空所有binlog文件
3、如果你的服务器 , mysql做了主从同步 , 那么上面的命令就不适合你了 , 因为binlog文件不能全部删除 , 否则会导致数据不同步
mysql> show slave status\G; #在slave上查看从库读binlog读到了哪里
Master_Log_File: mysql-bin.000009 # 我们可以看到是mysql-bin.000009
mysql> purge master logs to 'mysql-bin.000009'; #在master中执行这条指令 , 将mysql-bin.000009前的binlog都删掉
mysql> purge master logs before '2014-11-18 00:00:00'; #将此日期前的binlog都删掉
参考链接:http://www.linuxidc.com/Linux/2016-03/129647.htm
相关文章
- mysql索引总结(2)-MySQL聚簇索引和非聚簇索引
- MySQL Binlog Digger 4.28 【mysql日志分析工具】
- mysql中如何开启binlog?开启二进制日志文件?binary log?
- Mysql 地区经纬度 查询
- mysql远程连接 Host * is not allowed to connect to this MySQL server
- 《MySQL DBA修炼之道》——2.5 常用命令
- Linux 上从 MySQL 迁移到 MariaDB 的简单步骤
- 连接Mysql提示Can’t connect to local MySQL server through socket的解决方法
- MySQL第四讲 MySql Undo日志 - 对聚簇索引进行CUD操作
- MySQL root修改普通用户密码及Mysql 修改root密码
- mysql数据导出为excel文件
- MySQL 大数据量表最优分页方法
- 基于QT(C++)+MySQL 实现(界面)疫情下低风险旅行模拟系统【100010641】
- MySQL面试题合集!
- 使用navicat连接mysql连接错误:Lost connection to Mysql server at 'waiting for initial communication packet'
- 转 zabbix+percona监控MySQL之各个监控项
- mysql面试题
- golang初始化数据库(MySQL)
- mysql—MySQL数据库中10位或13位时间戳和标准时间相互转换
- mysql分组取最大(最小、最新、前N条)条记录
- Mysql_mysql 性能分析及explain用法
- Mysql_mysql多个TimeStamp设置
- 数据库原理及MySQL应用 | 事件
- (5.6)mysql高可用系列——MySQL Utilities 管理工具
- mysqldump导出报错“mysqldump: Error 2013: Lost connection to MySQL server during query when dumping table
- 使用solr的DIHandler 构建mysql大表全量索引,内存溢出问题的解决方法
- mysql 造1亿条记录的单表--大数据表
- [Python] Python读取百万级数据自动写入Mysql数据库