上周收到網站異常,
前往主機查詢發現硬碟空間佔滿,
導致系統運作不正常,
今天就來教大家怎麼解決
關閉 MySQL的 binlog 避免硬碟塞爆
由於 MySQL 的 binlog 預設為開啟,
導致長期下來 log 佔用太大的硬碟空間,
同時也是造成此次網站異常的元兇。
在此提供解決方案。
使用管理員帳號登入 mysql
mysql -uroot -p
並執行
show binary logs;
可以看到一個檔案就有 20MB以上,
日積月累之下這些 log 檔案就會塞爆硬碟,
當然若主機的硬碟空間很大應該就不會有這種困擾,
但換作雲端的話,
這些 log 佔用的空間就是代表經費的增加。
先使用命令將多數的 log檔案刪除
purge binary logs to 'binlog.000150'
這命令會將 'binlog.000150'之前的 log檔案都刪除
接著再到 MySQL 設定檔案中略過 binlog
路徑通常為
/etc/mysql/mysql.conf.d/mysqld.cnf
新增一行 skip-log-bin 讓這個功能 off
[mysqld]
user = mysql
skip-log-bin
重新啟動服務
sudo service mysql restart
回到 MySQL 使用
show variables like 'log_bin';
確認是否關閉
show variables like 'log_bin';
最後回到主機上執行
df -h
查詢目前空間佔用的情形
經過上面的步驟之後,
可用空間多出 1.3G ,
就不會再出現網站異常的訊息,
其他實用的命令如下:
find / -type f -size +10000k -exec ls -lh {} \; | awk '{print $5 ": " $9}' | sort -nr | head -n 40
這個命令會找到資料夾內大於 10MB的前 40個檔案,
以上就是今天要分享的解決方案
關閉 MySQL的 binlog 避免硬碟塞爆