今天登錄網站後台提示 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 日