mysql清除log-bin日志的方法
前一陣子工作項目上的事情忙的焦頭爛額,最近要進行部門調(diào)整將要去做新的項目。又要學(xué)習(xí)很多新的知識了,還是很興奮激動的。今天下班回來查看了一下VPS狀態(tài),發(fā)現(xiàn)VPS的空間只剩下了1G多!第一反應(yīng)是被入侵了,但是看了一下log并沒有發(fā)現(xiàn)什么異常的登錄,加上平時基本都是用私鑰免密碼登錄的VPS,別入侵的可能也不是很大。那我就很疑惑了,因為系統(tǒng)文件占用應(yīng)該也就3G多,我平時并沒有在VPS放過什么大文件,不應(yīng)該一下子少那么多空間。于是開始一番du查找終于找到了罪魁禍首!原來是mysql的log文件導(dǎo)致的。
裝mysql并運行一段時間后,在mysql目錄下出現(xiàn)一堆類似mysql-bin.000***,從mysql-bin.000001開始一直排列下來,而且占用了大量硬盤空間,高達十幾個G.。原來mysql-bin.000001、mysql-bin.000002等文件是數(shù)據(jù)庫的操作日志,例如UPDATE一個表,或者DELETE一些數(shù)據(jù),即使該語句沒有匹配的數(shù)據(jù),這個命令也會存儲到日志文件中,還包括每個語句執(zhí)行的時間,也會記錄進去的。 這些形如mysql-bin.00001的文件主要是用來做什么的呢?
1、數(shù)據(jù)恢復(fù)
如果你的數(shù)據(jù)庫出問題了,而你之前有過備份,那么可以看日志文件,找出是哪個命令導(dǎo)致你的數(shù)據(jù)庫出問題了,想辦法挽回損失。
2、主從服務(wù)器之間同步數(shù)據(jù)
主服務(wù)器上所有的操作都在記錄日志中,從服務(wù)器可以根據(jù)該日志來進行,以確保兩個同步。
3、清除辦法
運行 /usr/local/mysql/bin/mysql -u root -p 登錄執(zhí)行:
如果你只有一個mysql服務(wù)器,在/etc/ 下面找到my.cnf文件vim /etc/my.cnf把里面的
#binlog_format=mixed
這兩行注釋掉,然后將mysql下的var目錄中的這些日志文件全部刪除,重啟mysql服務(wù)即可。
但是如果你設(shè)置了主從服務(wù)器,那么就需要做以下操作了。
A:在每個從屬服務(wù)器上,使用SHOW SLAVE STATUS來檢查它正在讀取哪個日志。
B:使用SHOW MASTER LOGS獲得主服務(wù)器上的一系列日志。
C:在所有的從屬服務(wù)器中判定最早的日志,這個是目標日志,如果所有的從屬服務(wù)器是更新的,就是清單上的最后一個日志。
D:清理所有的日志,但是不包括目標日志,因為從服務(wù)器還要跟它同步。 簡單地說,這些MySQL目錄下的形如mysql-bin.000***的文件時MySQL的事務(wù)日志。 刪除復(fù)制服務(wù)器已經(jīng)拿走的binlog是安全的,一般來說網(wǎng)絡(luò)狀況好的時候,保留最新的那一個足以。
相關(guān)文章
MySQL多個表的關(guān)聯(lián)字段實現(xiàn)同步更新的解決方案
在對數(shù)據(jù)庫表結(jié)構(gòu)進行設(shè)計時,為了提高查詢效率,會進行一些反規(guī)范化設(shè)計,如:設(shè)計一些冗余字段,但這樣可能會存在數(shù)據(jù)同步問題,故本文給大家介紹了MySQL多個表的關(guān)聯(lián)字段實現(xiàn)同步更新的解決方案,需要的朋友可以參考下2024-11-11
MySQL獲取數(shù)據(jù)庫內(nèi)所有表格數(shù)據(jù)總數(shù)的示例代碼
在 MySQL 中,要獲取數(shù)據(jù)庫內(nèi)所有表格的數(shù)據(jù)總數(shù),可以編寫一個查詢腳本來遍歷每個表并計算其行數(shù),所以本文給大家介紹了MySQL獲取數(shù)據(jù)庫內(nèi)所有表格數(shù)據(jù)總數(shù)的示例,需要的朋友可以參考下2024-11-11
MySQL中列轉(zhuǎn)行和行轉(zhuǎn)列總結(jié)解決思路
最近工作中用到了好幾次列轉(zhuǎn)行,索性做個小總結(jié),下面這篇文章主要給大家介紹了關(guān)于MYSQL如何列轉(zhuǎn)行的相關(guān)資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下2023-01-01
SQL實現(xiàn)LeetCode(175.聯(lián)合兩表)
這篇文章主要介紹了SQL實現(xiàn)LeetCode(175.聯(lián)合兩表),本篇文章通過簡要的案例,講解了該項技術(shù)的了解與使用,以下就是詳細內(nèi)容,需要的朋友可以參考下2021-08-08
Navicat如何遠程連接云服務(wù)器數(shù)據(jù)庫
這篇文章主要介紹了Navicat如何遠程連接云服務(wù)器數(shù)據(jù)庫,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-11-11
在Centos7中利用Shell腳本實現(xiàn)MySQL數(shù)據(jù)備份
備份是容災(zāi)的基礎(chǔ),是指為防止系統(tǒng)出現(xiàn)操作失誤或系統(tǒng)故障導(dǎo)致數(shù)據(jù)丟失,而將全部或部分數(shù)據(jù)集合從應(yīng)用主機的硬盤或陣列復(fù)制到其它的存儲介質(zhì)的過程,本文將給大家介紹了在Centos7中利用Shell腳本實現(xiàn)MySQL數(shù)據(jù)備份,文中有詳細的圖文介紹,需要的朋友可以參考下2023-12-12

