如何清理MySQL中的binlog問(wèn)題
清理MySQL中的binlog
Mysql的binlog開(kāi)啟后一直沒(méi)清理,占用太大空間
1.查看binlog過(guò)期時(shí)間
show variables like 'expire_logs_days';

expire_logs_days=0:
- 這里的值如果為0,表示所有binlog日志永久都不會(huì)失效,不會(huì)自動(dòng)刪除;
- 這里的值如果為30,表示只保留最近30天。
2. 修改binlog過(guò)期時(shí)間
永久生效(重啟后即生效)
修改配置文件my.cnf文件: vim /etc/my.cnf
在[mysqld]標(biāo)簽內(nèi)增加如下內(nèi)容
expire_logs_days=30 max_binlog_size=1024M
修改保存后,以下3種情況才生效
- 1)當(dāng)binlog大小超過(guò)max_binlog_size
- 2)手動(dòng)執(zhí)行flush logs
- 3)重新啟動(dòng)
為了使之生效,需要執(zhí)行flush logs。
mysql> flush logs; Query OK, 0 rows affected, 64 warnings (0.16 sec
3.手工清除歷史binlog
如果binlog非常多,推薦使用purge命令予清除歷史文件:

比如將mysql-bin.009560之前的binlog清掉:
mysql>purge binary logs to 'mysql-bin.009560';
或者指定時(shí)間之前的binlog清掉:
mysql>purge binary logs before '2022-01-01 23:59:59';
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
在同一臺(tái)機(jī)器上運(yùn)行多個(gè) MySQL 服務(wù)
在同一臺(tái)機(jī)器上運(yùn)行多個(gè) MySQL 服務(wù)...2006-11-11
MySQL?binlog格式之Row和Statement語(yǔ)句詳解
這篇文章主要為大家介紹了MySQL?binlog格式之Row和Statement語(yǔ)句詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-12-12
使用MYSQL TIMESTAMP字段進(jìn)行時(shí)間加減運(yùn)算問(wèn)題
這篇文章主要介紹了使用MYSQL TIMESTAMP字段進(jìn)行時(shí)間加減運(yùn)算問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-02-02

