前段時(shí)間遷移服務(wù)器露懒,mysql使用了最新8.0。服務(wù)器突然故障了读宙,搞了一會(huì)發(fā)現(xiàn)是磁盤滿了彻秆,一通檢查過后發(fā)現(xiàn)是mysql的binlog把磁盤塞滿了。
網(wǎng)上查了下發(fā)現(xiàn)结闸,原來(lái)mysql8自動(dòng)開啟binlog唇兑。發(fā)現(xiàn)問題了,那么就解決吧膀估。想著先把binlog關(guān)了吧幔亥。
編輯mysql配置文件:/etc/mysql/mysql.conf.d/mysqld.cnf
添加 skip-log-bin,重啟msyql即可關(guān)閉binlog
mysql> show variables like '%log_bin%%';
+---------------------------------+-------+
| Variable_name | Value |
+---------------------------------+-------+
| log_bin | OFF |
登錄數(shù)據(jù)庫(kù)察纯,確實(shí)已經(jīng)關(guān)閉了bin-log。
binlog關(guān)閉后针肥,之前產(chǎn)生的binlog文件并沒有被清除饼记。磁盤空間仍被占用,首先想到的就是簡(jiǎn)單粗暴的rm直接刪掉慰枕。當(dāng)然直接刪掉是沒問題的具则,只不過binlog問價(jià)順序如果打亂,后期開啟則無(wú)法正常執(zhí)行具帮。于是乎博肋,百度了一下刪除binlog的方法,方法分為兩種蜂厅,一種自動(dòng)刪除匪凡,一種手動(dòng)刪除。首先來(lái)看自動(dòng)刪除:
打開配置文件
binlog_expire_logs_seconds = 2592000 //單位秒
上面參數(shù)就是通過設(shè)置過期時(shí)間來(lái)自動(dòng)刪除binlog
手動(dòng)刪除是通過 mysql自帶的purge命令:
RESET MASTER;刪除所有binlog日志掘猿,新日志編號(hào)從頭開始
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)生的所有日志
注:執(zhí)行purge命令是病游,要確保binlog是開啟狀態(tài),否則無(wú)法刪除