MySQL的binlog日志介紹
Binlog是mysql以二進制形式打印的日志,它默認不加密,不壓縮。binlog二進制日志包含了所有更新了數(shù)據(jù)或者已經(jīng)潛在更新了數(shù)據(jù)(例如,沒有匹配任何行的一個DELETE)的所有語句。語句以“事件”的形式保存,它描述數(shù)據(jù)更改文件位置和格式:當用–log-bin[=file_name]選項啟動時,mysqld寫入包含所有更新數(shù)據(jù)的SQL命令的日志文件。如果未給出file_name值, 默認名為-bin后面所跟的主機名。如果給出了文件名,但沒有包含路徑,則文件被寫入數(shù)據(jù)目錄。
刪除mysql的binlog日志有兩種方法:自動刪除和手動刪除
1.自動刪除
永久生效:修改mysql的配置文件my.cnf,添加binlog過期時間的配置項:expire_logs_days=30,然后重啟mysql,這個有個致命的缺點就是需要重啟mysql。
臨時生效:進入mysql,用以下命令設置全局的參數(shù):set global expire_logs_days=30;
(上面的數(shù)字30是保留30天的意思。)
2.手動刪除
可以直接刪除binlog文件,但是可以通過mysql提供的工具來刪除更安全,因為purge會更新mysql-bin.index中的條目,而直接刪除的話,mysql-bin.index文件不會更新。mysql-bin.index的作用是加快查找binlog文件的速度。
- (1)直接刪除(未親測使用)
找到binlog所在目錄,用rm binglog名 直接刪除,例:
rm mysql-bin.010
- (2)通過mysql提供的工具來刪除(親測使用過)
刪除之前可以先看一下purge的用法:help purge;
命令查看binlog文件
show binary logs;
刪除舉例:
RESET MASTER;刪除所有binlog日志,新日志編號從頭開始
PURGE MASTER LOGS TO ‘mysql-bin.010’; ||刪除mysql-bin.010之前所有日志
PURGE MASTER LOGS BEFORE ‘2003-04-02 22:46:26’; ||刪除2003-04-02 22:46:26之前產(chǎn)生的所有日志