這篇文章主要介紹“ binlog日志的自動(dòng)清理及手動(dòng)刪除的方法”,在日常操作中,相信很多人在mysql binlog日志的自動(dòng)清理及手動(dòng)刪除的方法問(wèn)題上存在疑惑,小編查閱了各式資料,整理出簡(jiǎn)單好用的操作方法,希望對大家解答”mysql binlog日志的自動(dòng)清理及手動(dòng)刪除的方法”的疑惑有所幫助!接下來(lái),請跟著(zhù)小編一起來(lái)學(xué)習吧!
說(shuō)明:
當開(kāi)啟mysql數據庫主從時(shí),會(huì )產(chǎn)生大量如mysql-bin.00000* log的文件,這會(huì )大量耗費您的硬盤(pán)空間。
mysql-bin.000001
mysql-bin.000002
mysql-bin.000003
mysql-bin.000004
mysql-bin.000005
…
有三種解決方法:
1.關(guān)閉mysql主從,關(guān)閉binlog;
2.開(kāi)啟mysql主從,設置expire_logs_days;
3.手動(dòng)清除binlog文件,> PURGE MASTER LOGS TO ‘MySQL-bin.010′;------ ‘MySQL-bin.010′之前的全部被清除
實(shí)現:
1.關(guān)閉mysql主從,關(guān)閉binlog
LNMP一鍵安裝包安裝的MySQL默認是開(kāi)啟了日志文件的,如果數據操作比較頻繁就會(huì )產(chǎn)生大量的日志,在/usr/local/mysql /var/下面產(chǎn)生mysql-bin.0000* 類(lèi)似的文件,而且一般都在幾十MB到幾個(gè)GB,更甚會(huì )吃掉整個(gè)硬盤(pán)空間,從來(lái)導致mysql無(wú)法啟動(dòng)或報錯,如論壇用戶(hù)的反饋。
如何關(guān)閉MySQL的日志功能:
刪除日志:
執行:/usr/local/mysql/bin/mysql -u root -p
輸入密碼登錄后再執行:reset master;
修改/etc/my.cnf 文件,找到
log-bin=mysql-bin
binlog_format=mixed
再這兩行前面加上#,將其注釋掉,再執行/etc/init.d/mysql restart即可。
2.重啟mysql,開(kāi)啟mysql主從,設置expire_logs_days
# vim /etc/my.cnf
//修改expire_logs_days,x是自動(dòng)刪除的天數,一般將x設置為短點(diǎn),如10
expire_logs_days = x //二進(jìn)制日志自動(dòng)刪除的天數。默認值為0,表示“沒(méi)有自動(dòng)刪除”
此方法需要重啟mysql,附錄有關(guān)于expire_logs_days的英文說(shuō)明
當然也可以不重啟mysql,開(kāi)啟mysql主從,直接在mysql里設置expire_logs_days
> show binary logs;
> show variables like '%log%';
> set global expire_logs_days = 10;
3.手動(dòng)清除binlog文件
# /usr/local/mysql/bin/mysql -u root -p
> PURGE MASTER LOGS BEFORE DATE_SUB(CURRENT_DATE, INTERVAL 10 DAY); //刪除10天前的MySQL binlog日志,附錄2有關(guān)于PURGE
MASTER LOGS手動(dòng)刪除用法及示例
> show master logs;
也可以重置master,刪除所有binlog文件:
# /usr/local/mysql/bin/mysql -u root -p
> reset master; //附錄3有清除binlog時(shí),對從mysql的影響說(shuō)明
附錄:
1.expire_logs_days英文說(shuō)明
Where X is the number of days you’d like to keep them around. I would recommend 10, but this depends on how busy your MySQL server is and how fast these log files grow. Just make sure it is longer than the slowest slave takes to replicate the data from your master.
Just a side note: You know that you should do this anyway, but make sure you back up your mysql database. The binary log can be used to recover the database in certain situations; so having a backup ensures that if your database server does crash, you will be able to recover the data.
2.PURGE MASTER LOGS手動(dòng)刪除用法及示例,MASTER和BINARY是同義詞
> PURGE {MASTER | BINARY} LOGS TO
'log_name'
> PURGE {MASTER | BINARY} LOGS BEFORE 'date'
刪除指定的日志或日期之前的日志索引中的所有二進(jìn)制日志。這些日志也會(huì )從記錄在日志索引文件中的清單中被刪除MySQL BIN-LOG 日志,這樣被給定的日志成為第一個(gè)。
實(shí)例:
> PURGE MASTER LOGS TO 'MySQL-bin.010'; //清除MySQL-bin.010日志
> PURGE MASTER LOGS BEFORE '2008-06-22 13:00:00'; //清除2008-06-22
13:00:00前binlog日志
> PURGE MASTER LOGS BEFORE DATE_SUB( NOW( ), INTERVAL 3 DAY); //清除3天前binlog日志BEFORE,變量的date自變量可以為'YYYY-MM-DD hh:mm:ss'格式。
3.清除binlog時(shí),對從mysql的影響
如果您有一個(gè)活性的從屬,該服務(wù)器當前正在讀取您正在試圖刪除的日志之一,則本語(yǔ)句不會(huì )起作用,而是會(huì )失敗,并伴隨一個(gè)錯誤。不過(guò),如果從屬服務(wù)器是休止的,并且您碰巧清理了其想要讀取的日志之一,則從屬服務(wù)器啟動(dòng)后不能復制。當從屬服務(wù)器正在復制時(shí),本語(yǔ)句可以安全運行。您不需要停止它們。
免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng )、來(lái)自本網(wǎng)站內容采集于網(wǎng)絡(luò )互聯(lián)網(wǎng)轉載等其它媒體和分享為主,內容觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如侵犯了原作者的版權,請告知一經(jīng)查實(shí),將立刻刪除涉嫌侵權內容,聯(lián)系我們QQ:712375056,同時(shí)歡迎投稿傳遞力量。
Copyright ? 2009-2022 56dr.com. All Rights Reserved. 特網(wǎng)科技 特網(wǎng)云 版權所有 特網(wǎng)科技 粵ICP備16109289號
域名注冊服務(wù)機構:阿里云計算有限公司(萬(wàn)網(wǎng)) 域名服務(wù)機構:煙臺帝思普網(wǎng)絡(luò )科技有限公司(DNSPod) CDN服務(wù):阿里云計算有限公司 百度云 中國互聯(lián)網(wǎng)舉報中心 增值電信業(yè)務(wù)經(jīng)營(yíng)許可證B2
建議您使用Chrome、Firefox、Edge、IE10及以上版本和360等主流瀏覽器瀏覽本網(wǎng)站