MySQL binlog日志進(jìn)行手動(dòng)刪除與自動(dòng)清理
簡(jiǎn)介
本文介紹如何MySQL的binlog日志如何手動(dòng)刪除與自動(dòng)清理。
默認(rèn)情況下,MySQL會(huì)生成binlog日志,在增刪改操作時(shí)會(huì)往binlog寫數(shù)據(jù)。通過(guò)binlog記錄可以找到增刪改日志,可以將數(shù)據(jù)恢復(fù)到某條日志對(duì)應(yīng)的時(shí)間點(diǎn),可以用于數(shù)據(jù)庫(kù)被誤刪、被攻擊時(shí)進(jìn)行恢復(fù)。
問(wèn)題描述
默認(rèn)情況下,mysql會(huì)生成很多個(gè)binlog,占用很大的空間。
查詢binlog的方法如下:
方法1:用MySQL命令
SHOW BINARY LOGS
結(jié)果如下(下邊最大已經(jīng)到了1G多):

方法2:到MySQL服務(wù)器查文件
到MySQL數(shù)據(jù)路徑下,執(zhí)行命令:ls -lh

解決方案
方案是:刪除舊的binlog,只保留最近的binlog;修改binlog的過(guò)期時(shí)間(默認(rèn)一直存活),比如:2天。
方案1. 手動(dòng)刪除binlog
使用MySQL提供的purge命令刪除binlog。purge命令的定義如下:
法1:指定文件名
將BINLOG-FILE-NAME之前日期的(不包括自己本身)所有binlog文件清理掉。
PURGE {BINARY | MASTER} LOGS TO "BINLOG-FILE-NAME"例如:
PURGE BINARY LOGS TO 'mysql-bin.000007';
法2:指定時(shí)間
將最后修改時(shí)間早于datetime-rxpr的binlog文件清理掉(不包括自己)。
PURGE {BINARY | MASTER} LOGS BEFORE "DATETIME-EXPR"例如:
PURGE BINARY LOGS BEFORE '2015-11-29 00:00:00';
方案2. 修改binlog過(guò)期時(shí)間
binlog_expire_logs_seconds參數(shù)可以控制binlog過(guò)期秒數(shù),過(guò)了指定時(shí)間的日志將被自動(dòng)刪除,可動(dòng)態(tài)修改。
- 如果設(shè)置了非0值,則在mysqld啟動(dòng)和日志刷新時(shí),可能執(zhí)行清理超過(guò)定義時(shí)間的binlog file
- 默認(rèn)值為2592000(30天)。
查看binlog_expire_logs_seconds的方法:
SHOW GLOBAL VARIABLES LIKE 'BINLOG_EXPIRE_LOGS_SECONDS';
結(jié)果如下圖所示:

法1:修改配置文件(需重啟MySQL)
修改配置文件:/etc/my.cnf,在[mysqld]節(jié)點(diǎn)中增加如下內(nèi)容
# binlog過(guò)期時(shí)間設(shè)置為3天。默認(rèn)為30天。 binlog_expire_logs_seconds=259200
法2:使用命令(不需重啟MySQL)
SET GLOBAL BINLOG_EXPIRE_LOGS_SECONDS=259200;
如下圖所示:

以上就是MySQL binlog日志進(jìn)行手動(dòng)刪除與自動(dòng)清理的詳細(xì)內(nèi)容,更多關(guān)于MySQL binlog日志刪除與清理的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
阿里云centos7使用yum安裝mysql的正確姿勢(shì)(推薦)
這篇文章主要介紹了阿里云centos7使用yum安裝mysql的正確姿勢(shì),需要的朋友可以參考下2017-07-07
PostgreSQL 正則表達(dá)式 常用函數(shù)的總結(jié)
這篇文章主要介紹了PostgreSQL 正則表達(dá)式 常用函數(shù)的總結(jié)的相關(guān)資料,對(duì)那些需要進(jìn)行復(fù)雜數(shù)據(jù)處理的程序來(lái)說(shuō),正則表達(dá)式無(wú)疑是一個(gè)非常有用的工具,這里就介紹下如何使用,需要的朋友可以參考下2017-08-08
MySQL數(shù)據(jù)庫(kù)備份與恢復(fù)全攻略
在現(xiàn)代應(yīng)用中,數(shù)據(jù)庫(kù)是核心組件之一,無(wú)論是個(gè)人項(xiàng)目還是企業(yè)級(jí)應(yīng)用,數(shù)據(jù)的安全性和完整性都至關(guān)重要,為了防止數(shù)據(jù)丟失、損壞或意外刪除,定期備份數(shù)據(jù)庫(kù)是必不可少的,本文將詳細(xì)介紹 MySQL 數(shù)據(jù)庫(kù)的備份與恢復(fù)方法,需要的朋友可以參考下2024-10-10
MySQL將select結(jié)果執(zhí)行update的實(shí)例教程
這篇文章主要給大家介紹了關(guān)于MySQL將select結(jié)果執(zhí)行update的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-01-01
Windows server 2008 r2下MySQL5.7.17 winx64安裝版配置方法圖文教程
這篇文章主要為大家詳細(xì)介紹了Windows server 2008 r2下MySQL5.7.17 winx64安裝版配置方法圖文教程,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-03-03
MySQL分區(qū)分表實(shí)現(xiàn)方法示例詳解
ShardingSphere-JDBC通過(guò)在應(yīng)用層進(jìn)行數(shù)據(jù)分片,可以幫你輕松實(shí)現(xiàn)分區(qū)、分表和分庫(kù),下面我用具體的配置和代碼示例來(lái)說(shuō)明如何使用,本文結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì),感興趣的朋友跟隨小編一起看看吧2025-10-10

