打開 wordpress提示
“Error establishing a database connection ”,這段話意思是連接數據時出現錯誤。
找到下面這些:
代碼如下 | |
/** WordPress數據庫的名稱,替換掉 “putyourdbnamehere” */ define('DB_NAME', 'wordpress'); /** MySQL數據庫用戶名,替換掉 “usernamehere” */ define('DB_USER', 'root'); /** MySQL數據庫密碼,替換掉 “yourpasswordhere” */ define('DB_PASSWORD', 'root'); /** MySQL主機名 */ define('DB_HOST', 'localhost'); DB_NAME爲WordPress數據庫的名稱 DB_USER爲MySQL數據庫用戶名 DB_PASSWORD爲MySQL數據庫密碼 DB_HOST爲MySQL主機名,一般默認localhost不用修改,特殊的可以修改成 localhost:3306/wordpress 這種形式 |
但還是解決不了於是就有了下面的解決過程,WORDPRESS出現這種情況的原因可能是:
1、無法連接到Wordpress使用的數據庫。
你的wp-config.php中的數據庫用戶名和密碼錯誤,或者你的數據庫所在服務器掛掉了!也有可能是服務商短時間內限制(訪問量突然暴漲的博客或使用一些消耗數據庫連接的WP插件)。
解決辦法是,確認wp-config.php中的用戶名和密碼信息正確。確認WP使用的數據庫服務器沒有掛掉(可以ping或直接重啓?!)。確認數據庫連接方式,是遠程連接還是本地連接,有些配置的遠程連接的可能出現連不上數據庫的情況,也就會出現這個“Error establishing a database connection”提示,一般虛擬空間(GD的空間使用的遠程數據庫連接)或合租空間都是使用的本地連接(localhost)。
2、若服務器數據庫是剛剛升級到 mysql 5.0 以上,之前WP博客正常可訪問。
這可能是由於mysql 5.0採用了一種新的密碼驗證機制,這需要客戶端的版本要在4.0以上(PHP中的MYSQL客戶端可以查看phpinfo得到),連接數據庫時是用舊的密碼機制,這會出現“Client does not support authentication protocol requested by server” 這樣的錯誤提示,wordpress中就提示“Error establishing a database connection (可能密碼錯誤)”。
解決辦法:
方法1、在mysql中爲wordpress數據庫新建一個控制賬戶,然後修改wp-config.php中的數據庫用戶名和密碼配置信息即可。方便簡單!!
方法2、在mysql下:
代碼如下 | |
mysql> SET PASSWORD FOR |
這裏的clin003替換成使用wordpress數據庫的用戶名,clin003.com替換成localhost或者某個域名,newpwd是該用戶對應的密碼。
還有一點是,查看phpinfo(),找MYSQL_SOCKET顯示的mysql.sock的路徑,確認mysql.sock的確在此路徑下,否則需要做一個符號鏈接。比如phpinfo裏顯示MYSQL_SOCKET路徑爲/var/lib/mysql/mysql.sock,但實際上位於 /tmp/mysql.sock,可在命令行輸入:
代碼如下 | |
ln -s /tmp/mysql.sock /var/lib/mysql/mysql.sock |
3、mysql服務設置不當,導致mysql連接數量超過限定值,或者應用程序設計有問題,導致大量休眠連接不能及時釋放。
解決辦法:
登陸mysql服務器
代碼如下 | |
mysql -u root -p 使用命令 show processlist; |
查看當前連接數量,如果進程過多,或存在大量超時的休眠sleep連接,編輯
代碼如下 | |
/etc/mysql/my.cnf vim /etc/mysql/my.cnf |
在[mysqld]字段處,添加,或去掉註釋
max_connections = 500 #增加mysql連接數
wait_timeout = 10 #斷開超過10秒的連接
4、是wp_options數據庫表錯誤,我把整個數據庫表修復和優化了一次
wp_options中的表前綴wp根據自己實際情況查看!
WORDPRESS出現錯誤時,可以通過 DEBUG 參數調試:
根據Wp-config.php的調試功能排錯
1、在 wp-config.php 有個 debug 的參數,打開這個參數,修改爲:
define(‘WP_DEBUG’, ‘true’);
2、根據報錯提示解決問題,比如以下錯誤:
WordPress database error: [Table './clin003_com/wp_options' is marked as crashed and should be repaired]
SELECT autoload FROM wp_options WHERE option_name = ‘_transient_doing_cron’
WordPress database error: [Table './clin003_com/wp_options' is marked as crashed and should be repaired]
SELECT autoload FROM wp_options WHERE option_name = ‘_transient_timeout_doing_cron’
WordPress database error: [Table './clin003_com/wp_options' is marked as crashed and should be repaired]
SELECT option_value FROM wp_options WHERE option_name = ‘_transient_doing_cron’ LIMIT 1
wp_options 表壞了,需要被修復,使用 mysql 客戶端。
進 mysql 使用修復的命令修復:
代碼如下 | |
mysql>repair table wp_options; |
也可以通過phpMyAdmin來進行修復。
3、問題解決,關掉 DEBUG。
根據mysql的日誌記錄排錯
在mysql的log日誌文件
代碼如下 | |
mysql/data/ |
裏面找到一個.err結尾的文件,打開。看見了一排
‘.\clin003_com\wp_options’ is marked as crashed and should be repaired
‘.\clin003_com\wp_options’ is marked as crashed and should be repaired
‘.\clin003_com\wp_options’ is marked as crashed and should be repaired
修復辦法參考上面!