20241130/674aaadbe6c0d.png

The best life is use of willing attitude, a happy-go-lucky life.

— Mr.Wang

头像

mysql binlog日志自动清理及手动删除

发布时间:2024-11-30 14:04:11

发布作者:admin

50

说明

当开启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;
3、 登陆mysql,执行以下SQL语句手动清除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’格式。
也可以重置master,删除所有binlog文件:reset master;


相关文章:
  1. SELinux,害我白忙一天的东西
  2. 动态扩容Linux根目录 (解决/dev/mapper/centos-root 占用了过高问题)
  3. PHP xdebug 各个版本配置
  4. Mac下Sublime Text Vim模式 方向键无法长按