开发者

MySQL清理binlog日志文件命令详解

目录
  • mysql清理binlog日志文件命令
    • 删除旧的binlog文件
    • 强制清除binlog文件
  • Binlog日志清理问题
    • 查看所有binlog日志
    • 3种处理方式
  • 总结

    MySQL清理binlog日志文件命令

    MySQL清理binlog日志文件命令详解

    如果你担心旧的binlog文件会占用大量磁盘空间php,可以在设置完成后清理旧的binlog文件:

    删除旧的binlog文件

    sudo rm /path/to/your/mysqllogs/mysql-bin.*

    强制清除binlog文件

    PURGE BINARY LOGS BEFORE '2024-09-19 00:00:00';
    FLUSH BINARY LOGS;
    

    Binlog日志清理问题

    近期发现测试环境的Mysql数据库一直磁盘爆满,查看数据目录发现binlog日志很多很大,特记录处理过程。

    查看所有binlog日志

    show binary logs;

    3种处理方式

    自动删除(永久配置)

    cat /etc/my.cnf
    expire_logs_days = 2		
    #保留最近2天的androidbinlog文件;expire_logs_days 为binlog过期时间,默认值为0,表示“永不过期”,重启数据库生效

    临时生效:

    show variables like 'expire_logs_daysphp';
    set global expire_logs_days=1;

    设置之后不会立即清除,触发条件是:

    • 1)binlog大小超过 max_binlog_size
    • 2)手动执行flush logs
    • 3)重新启动时(MySQL 将会new一个新文件用于记录binlog)

    手动删除(安全处理)

    purge会更新mysql-bin.index中的条目,而直接删除的话,mysql-bin.index文件不会更新。mysql-bin.index的作用是加快查找binlog文件的速度

    #清除MySQL-bin.010日志
    PURGE MASTER LOGS TO 'MySQL-bin.010';
    
    #清除2008-06-22 13:00:00前binlog日志
    PURGE MASTER LOGS BEFORE '2008-06-22 13:00:00';
    
    #清除3天前binlog日志BEFORE,变量的date自变量可以为'YjavascriptYYY-MM-DD hh:mm:spythons'格式。
    PURGE MASTER LOGS BEFORE DATE_SUB( NOW(), INTERVAL 3 DAY);

    RESET MASTER; #该命令将删除所有BINLOG日志

    注:生产环境需要先备份数据后再执行删除操作

    总结

    以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程客栈(www.devze.com)。

    0

    上一篇:

    下一篇:

    精彩评论

    暂无评论...
    验证码 换一张
    取 消

    最新数据库

    数据库排行榜