MySQL binlog日誌存放位置的修改
最近項目上裝的MySQL服務,分配的磁碟空間太小了,導致binlog日誌兩天時間就能打滿,這裡記錄下處理方式。
mysql的binlog日誌是一個很重要的日誌,以事件形式記錄了所有的DDL和DML(除了資料查詢語句)語句,還包含執行的消耗的時間,在資料丟失的緊急情況下,我們可以利用binlog日誌功能進行資料恢複。
1、問題上面說了,預設情況下binlog日誌預設在/var/spool/mail/root路徑下,磁碟空間比較小很快就被binlog打滿了,為了保證項目上能正常使用,之前是維護人員手動清理和備份。在找到重新掛盤和修改binlog日誌路徑方法前,先給現場的配置下自動清理。
2、配置自動清理在my.cnf檔案中,這個檔案路徑不知道的話執行mysql --help | grep 'Default options' -A 1,就會列出檔案的路徑來
修改設定檔,vi /etc/my.cnf,找到logbin的部分
路徑因為測試環境沒法掛盤,隨便寫了個路徑,下面建立我們上面指定的檔案夾mkdir -p /home/logs,然後重啟mysql的時候報錯了,經過一番折騰後,發現建的檔案夾必須賦許可權,淚目。。。chown -R mysql.mysql /home/logs
然後重啟service mysql restart,去建立的目錄下看看,已經有最新的日誌了,我的日誌比較多是因為我重啟過好幾次,每重啟一次產生一次新的。
到這裡更換路徑和自動清理的工作就完成了。
下面列幾個常用的命令
0、查看日誌開啟狀態 show variables like 'log_%';
1、查看所有binlog日誌列表 show master logs;
2、查看最新一個binlog日誌的編號名稱,及其最後一個操作事件結束點 show master status;
3、重新整理log日誌,立刻產生一個新編號的binlog記錄檔,跟重啟一個效果 flush logs;
4、清空所有binlog日誌 reset master;
5、日誌查看,因為是二進位檔案沒法用vi等開啟,可以用mysql的mysqlbinlog開啟,/usr/bin/mysqlbinlog /home/logs/mysql-bin.000001,當然每個人路徑可能不一樣,這個只能自己去找了。
我這是新日誌,也沒做什麼操作,所以日誌內容沒什麼東西,具體的日誌內容解釋,以及如何通過binlog恢複資料,以後有時間的話再寫寫。