mysql binlog占用大量磁盤空間的解決方法
查看當前日志保存天數(shù):
mysql> show variables like '%expire_logs_days%'; +------------------+-------+ | Variable_name | Value | +------------------+-------+ | expire_logs_days | 0 | +------------------+-------+ 1 row in set (0.08 sec)
默認是0,也就是logs不過期。
也可以使用 show variables like '%expire%' 查看是否有開啟日志到期自動刪除
mysql> show variables like '%expire%'; +--------------------------------+--------+ | Variable_name | Value | +--------------------------------+--------+ | binlog_expire_logs_auto_purge | ON | | binlog_expire_logs_seconds | 432000 | | disconnect_on_expired_password | ON | | expire_logs_days | 0 | +--------------------------------+--------+ 4 rows in set (0.00 sec)
設置BINLOG到期時間
臨時生效,無需重起mysql
如果數(shù)據(jù)庫此時不便重啟,可以設置全局的參數(shù),使他臨時生效:
mysql> set global expire_logs_days=5;
設置了只保留5天BINLOG, 下次重啟mysql這個參數(shù)默認會失敗。
如果上面指令報錯,則改為set global binlog_expire_logs_seconds=432000
mysql> set global expire_logs_days=7; ERROR 3683 (HY000): The option expire_logs_days and binlog_expire_logs_seconds cannot be used together. Please use binlog_expire_logs_seconds to set the expire time (expire_logs_days is deprecated) mysql> set global binlog_expire_logs_seconds=432000; Query OK, 0 rows affected (0.00 sec) mysql> mysql> show variables like '%expire%'; +--------------------------------+--------+ | Variable_name | Value | +--------------------------------+--------+ | binlog_expire_logs_auto_purge | ON | | binlog_expire_logs_seconds | 432000 | | disconnect_on_expired_password | ON | | expire_logs_days | 0 | +--------------------------------+--------+ 4 rows in set (0.00 sec)
寫入配置文件,mysql重啟依舊生效
如果要永久生效,需要在my.cnf中設置
vi /etc/my.cnf
追加內(nèi)容:
binlog_expire_logs_seconds=432000
手動刪除BINLOG
也可以先手動刪除BINLOG (purge binary logs)
刪除指定的日志
mysql> PURGE {MASTER | BINARY} LOGS TO 'log_name'
例:刪除binlog.1000
mysql> PURGE MASTER LOGS TO 'binlog.1000';
或刪除指定日期之前的日志索引中的所有二進制日志。
mysql> PURGE {MASTER | BINARY} LOGS BEFORE 'date'
例:刪除2023-06-03 12:00:00前的文件
mysql> PURGE MASTER LOGS BEFORE '2023-06-03 12:00:00';
例:刪除3天前的日志
mysql> PURGE MASTER LOGS BEFORE DATE_SUB( NOW( ), INTERVAL 3 DAY);
到此這篇關于mysql binlog占用大量磁盤空間的解決方法的文章就介紹到這了,更多相關mysql binlog占用磁盤空間內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
Ubuntu查看修改mysql的登錄名和密碼、安裝phpmyadmin
這篇文章主要介紹了Ubuntu查看修改mysql的登錄名和密碼、安裝phpmyadmin,本文分步驟給大家講解的非常詳細,需要的朋友可以參考下2019-11-11MySQL函數(shù)date_format()日期格式轉換的實現(xiàn)
本文主要介紹了MySQL函數(shù)date_format()日期格式轉換的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2022-08-08MySQL中多個left?join?on關聯(lián)條件的順序說明
這篇文章主要介紹了MySQL中多個left?join?on關聯(lián)條件的順序說明,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-11-11mysql 報錯This function has none of DETERMINISTIC解決方案
這篇文章主要介紹了mysql 報錯This function has none of DETERMINISTIC解決方案的相關資料,需要的朋友可以參考下2016-11-11