3種方法:1、刪除所有日志,語法“RESET MASTER;”,刪除后將會重新開始創(chuàng)建新的二進(jìn)制日志;2、根據(jù)編號刪除日志,語法“PURGE MASTER LOGS TO ‘文件名.number’;”,將刪除編號小于指定“number’”的所有二進(jìn)制日志;3、根據(jù)創(chuàng)建時間刪除日志,語法“PURGE MASTER LOGS TO ‘yyyy-mm-dd hh:MM:ss’;”。
本教程操作環(huán)境:windows7系統(tǒng)、mysql8版本、Dell G3電腦。
mysql刪除二進(jìn)制日志的方法
二進(jìn)制日志啟動后,每次重啟 MySQL 服務(wù)后,都會生成一個新的二進(jìn)制日志文件。
二進(jìn)制日志中記錄著大量的信息,如果很長時間不清理二進(jìn)制日志,將會浪費很多的磁盤空間。刪除二進(jìn)制日志的方法很多,下面介紹幾種刪除二進(jìn)制日志的方法。
方法1:刪除所有二進(jìn)制日志
使用?RESET MASTER?語句可以刪除的所有二進(jìn)制日志,該語句的形式如下:
RESET?MASTER;
登錄 MySQL 數(shù)據(jù)庫后,可以執(zhí)行該語句來刪除所有二進(jìn)制日志。刪除所有二進(jìn)制日志后,MySQL 將會重新創(chuàng)建新的二進(jìn)制日志,新二進(jìn)制日志的編號從 000001 開始。
方法2:根據(jù)編號刪除二進(jìn)制日志
每個二進(jìn)制日志文件后面有一個 6 位數(shù)的編號,如 000001。使用 PURGE MASTER LOGS TO 語句,可以刪除指定二進(jìn)制日志的編號之前的日志。該語句的基本語法形式如下:
PURGE?MASTER?LOGS?TO?'filename.number';
該語句將刪除編號小于 filename.number 的所有二進(jìn)制日志。
示例:
//刪除bin-log.000002之前的二進(jìn)制日志 purge?binary?logs?to?'bin-log.000002';
方法3:根據(jù)創(chuàng)建時間刪除二進(jìn)制日志
使用 PURGE MASTER LOGS TO 語句,可以刪除指定時間之前創(chuàng)建的二進(jìn)制日志,該語句的基本語法格式如下:
PURGE?MASTER?LOGS?TO?'yyyy-mm-dd?hh:MM:ss';
其中,“hh”為 24 制的小時。該語句將刪除在指定時間之前創(chuàng)建的所有二進(jìn)制日志。
示例:刪除 2019-12-20 15:00:00 之前創(chuàng)建的二進(jìn)制日志
PURGE?MASTER?LOGS?TO?'2019-12-20?15:00:00";
代碼執(zhí)行完后,2019-12-20 15:00:00 之前創(chuàng)建的所有二進(jìn)制日志將被刪除。
另外,我們也可以設(shè)置expire_logs_days參數(shù),設(shè)置自動清理,其默認(rèn)值為0,表示不啟用過期自動刪除功能。
show?variables?like?'expire_logs_days';
如果啟用了自動清理功能,表示超出此天數(shù)的二進(jìn)制日志文件將被自動刪除,自動刪除工作通常發(fā)生在MySQL啟動時或FLUSH日志時。
【相關(guān)推薦:mysql視頻教程】