本站承诺永不接任何虚假欺骗、联盟广告、弹窗广告、病毒广告、诱导充值等影响用户体验的广告,广告屏蔽插件会影响本站部分功能,还请不要屏蔽本站广告,感谢支持!

当前位置:首页 / 正文

2019-10-29 | 编程技术 | 3379 次阅读 | 等你评论 | 3 次点赞 | 繁体

说明

当开启mysql数据库主从时,会产生大量如mysql-bin.00000* log的文件,这会大量耗费您的硬盘空间。
如:

mysql-bin.000001
mysql-bin.000002
mysql-bin.000003
mysql-bin.000004
mysql-bin.000005

有三种解决方法

1、 关闭mysql主从,关闭binlog

# vim /etc/my.cnf  //注释掉log-bin,binlog_format
# Replication Master Server (default)
# binary logging is required for replication
# log-bin=mysql-bin
# binary logging format - mixed recommended
# binlog_format=mixed

操作完之后记得重启数据库

2、 开启mysql主从,设置expire_logs_days

# vim /etc/my.cnf  // 修改expire_logs_days,x是自动删除的天数,一般将x设置为短点,如10
expire_logs_days = x  // 二进制日志自动删除的天数。默认值为0,表示“没有自动删除”
此方法需要重启mysql,附录有关于expire_logs_days的英文说明

以上操作完之后记得重启数据库,当然也可以不重启mysql,开启mysql主从,直接在mysql里设置expire_logs_days

show binary logs; 
show variables like '%log%';
set global expire_logs_days = 10;

mysql8 关闭 binlog 方法:
再配置文件中的 [mysql] 下添加 skip-log-bin,重启 msyql 即可关闭 binlog

3、 登陆 mysql,执行以下 SQL 语句手动清除 binlog 文件

RESET MASTER;  //删除所有binlog日志,新日志编号从头开始
PURGE MASTER LOGS TO 'MySQL-bin.010';  // 清除MySQL-bin.010日志
PURGE MASTER LOGS BEFORE '2008-06-22 13:00:00'; // 清除2008-06-22 13:00:00前binlog日志
PURGE MASTER LOGS BEFORE DATE_SUB( NOW( ), INTERVAL 3 DAY); //清除3天前binlog日志BEFORE,变量的date自变量可以为’YYYY-MM-DD hh:mm:ss’格式。

注意:执行 purge 命令时,要确保 binlog 是开启状态,否则无法删除

附录

1、 expire_logs_days 英文说明
Where X is the number of days you’d like to keep them around. I would recommend 10, but this depends on how busy your MySQL server is and how fast these log files grow. Just make sure it is longer than the slowest slave takes to replicate the data from your master.
Just a side note: You know that you should do this anyway, but make sure you back up your mysql database. The binary log can be used to recover the database in certain situations; so having a backup ensures that if your database server does crash, you will be able to recover the data.

2、 清除binlog时,对从mysql的影响
如果您有一个活性的从属服务器,该服务器当前正在读取您正在试图删除的日志之一,则本语句不会起作用,而是会失败,并伴随一个错误。不过,如果从属服务器是休止的,并且您碰巧清理了其想要读取的日志之一,则从属服务器启动后不能复制。当从属服务器正在复制时,本语句可以安全运行。您不需要停止它们。

标签: mysql日志

猜你喜欢
如何定位Mysql中CPU占用高的查询语句
今天 mysql 服务器突然 CPU 告警,记录一下问题查找的过程第一步查看具体是哪个线程占用CPU最高1、在 Linux 中使用 top 命令找到 mysql 进程 PID2、指定进程 PID...
mysql8利用CTE特性实现递归查询
递归查询分为父子查询和子父查询。父子查询: 根据父 id 查询下面所有子节点数据;子父查询: 根据子 id 查询上面所有父节点数据;下边就利用 mysql8 新增语法实现递归查询,表结构及数...
mysql数据库删除重复的数据只保留一条
问题引入假设一个场景,一张用户表,包含 3 个字段:id,identity_id,name。现在身份证号 identity_id 和姓名 name 有很多重复的数据,需要删除多余数据只保留一条有...
Mysql 窗口函数学习
窗口函数是数据库查询中的一个经典场景,在解决某些特定问题时甚至是必须的。个人认为,在单纯的数据库查询语句层面【即不考虑 DML、SQL 调优、索引等进阶】,窗口函数可看作是考察求职者 SQL 功...
三种方式修改 MySQL 数据库名
在 Innodb 数据库引擎下修改数据库名的方式与 MyISAM 引擎下修改数据库的方式完全不一样,如果是 MyISAM 可以直接去数据库目录中 mv 就可以,Innodb 如果用同样的方法修改...
windows 下 CSV 快速拆分工具
# 一、介绍 CSV 拆分工具可以把 csv 文件按意愿大小进行拆分,比较简单,可以搞定百万条的数据,再大的理论上也可以,内存占用比较少。 # 二、CSV 文件拆分工具功能: 1.
免费 GoogleDrive 无限容量团队盘
![](https://cdn.wangtwothree.com/imgur/ABy1AK7.png) 『温馨提示:重要的资料,做好多重备份,担心翻车的可以搞一个放着也行』 # 申请方法
(首次提交评论需审核通过才会显示,请勿重复提交)