今天登入網站後臺提示 nginx 502 錯誤和無法連線資料庫錯誤。這兩個錯誤交替出現,真是急死個人。
在網上搜了一圈,無法連線資料庫錯誤是 wp_options 資料庫需要修復,可伺服器上的 phpmyadmin 又無法開啟。重啟伺服器也無濟於事。 nginx,php,mysql 執行狀態正常。這個伺服器已經執行一年左右了,安裝 lnmp 環境時該做的最佳化都做了,像 max_connection 之類的設定也做過了。
用命令列登入 mysql 發現不能登入,剛開始提示 too many connections,重啟伺服器之後又提示 cannot connect to localhost server,找不到/tmp/mysql.sock
用 find 命令查了一下,伺服器上根本沒有/tmp/mysql.sock 這個檔案。
後來找到一篇文章上說,有可能是磁碟滿了,看下 mysql 目錄下的 mysql-bin 檔案確實很多,刪除之後,重啟 mysql,伺服器恢復正常了。
mysql-bin0000**是 mysql 日誌檔案,存放於 usr/local/mysql/var 下邊,其實這個日誌檔案不常用,所以,為了方便,可以停用 mysql 日誌。
如何關閉 MySQL 的日誌功能:
刪除日誌:
執行:
/usr/local/mysql/bin/mysql -u root -p
輸入資料庫 root 使用者的密碼登入後再執行:reset master;
再輸入:quit ; 退出 mysql 命令模式。
徹底停用 MySQL 日誌:修改/etc/my.cnf 檔案,找到
log-bin=mysql-bin
binlog_format=mixed
再這兩行前面加上 #,將其註釋掉,再執行 /etc/init.d/mysql restart 即可。
如果實在想保留日誌,可以在 /etc/my.cnf 里加入 expire_logs_days = 10 然後重啟 mysql,這樣 10 天就會自動清理日誌。
本文以 LNMP 一件安裝包安裝的環境為例除 MySQL 重啟命令和配置檔案路徑可能略有不同,其他一樣。
PS:貌似 php5.2 跟新版本的 WordPress 有點小衝突,php5.2 環境下的新版 WordPress 登入後臺之後容易出現 502 錯誤。安裝 lnmp 環境時務必選 php5.3 以上版本的 php 。
寫於 2015 年 7 月 28 日