前言
這幾天網站時常出現 「建立資料庫連線時發生錯誤」,而當下的緊急處理就是先「重啟Mysql」,但是似乎沒有用。因此更進一步的直接「修改db的密碼」,不過在修改密碼的部份要注意一點,修改的密碼要和原密碼相同才行。否則連「wp-config.php」此檔也要修改。
處理方式
以上提到的「重啟Mysql」和「修改db的密碼」都只是應急的處理。只能暫時性的解決此問題。過段時間還是會再出現問題。在查詢了一下LOG會看到 [ERROR] Database error User ‘dbname’ has exceeded the ‘max_questions‘resource (current value: 2000)此訊息是說明因為該資料庫「dbname」的連線數已經達到了上限。
所以要解決此問題,有三種方式提供參考。
方法一
如果可以ssh到該主機的話,可以直接自行修改「max_questions」所設定的上限。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
[root@localhost ~]# mysql -u帳號 -p密碼 mysql> use mysql #切換到Mysql資料庫 Reading table information for completion of table and column names You can turn off this feature to get a quicker startup with –A mysql> select user, max_questions from user; #查看各user的max_questions限制 +-------+---------------+ | user | max_questions | +-------+---------------+ | root | 0 | | root | 0 | | root | 0 | | | 0 | | | 0 | | derek | 5000 | +-------+---------------+ 6 rows in set (0.00 sec) mysql> update user set max_questions = 0 where user = 'derek'; #修改derek 此user的max_questions 可依個人需求設定,或設為0即為沒有限制 Query OK, 1 row affected (0.00 sec) Rows matched: 1 Changed: 1 Warnings: 0 mysql> flush privileges; #讓設定立即生效 Query OK, 0 rows affected (0.00 sec) |
方法二
新增一個「資料庫使用者」。此方式比較偏向於無法登入主機,也就是跟主機商承租空間的使用者。
1. 新增的方式有以下幾種「登入主機新增Mysql使用者」「phpMyAdmin新增使用者」
「virtual hosting提供的後台新增使用者」可依個人而定
1.1 登入主機新增Mysql使用者
1 2 3 4 5 6 7 8 9 10 11 12 13 |
[root@localhost ~]# mysql -u帳號 -p密碼 mysql> GRANT ALL PRIVILEGES -> ON *.* -> TO derek@localhost -> IDENTIFIED BY '123456789'; -> Flush privileges; (說明) ALL PRIVILEGES : 對應權限 localhost : 允許登入IP Derek : 資料庫使用者名稱 123456789 : 資料庫使用者密碼 Flush privileges; : 刷新權限,使其設定生效 |
1.2 phpMyAdmin新增使用者
如果有安裝phpMyAdmin的話,也可用phpMyAdmin來新增使用者。
1.3 virtual hosting提供的後台新增使用者
如果主機商有提供後台的話,也可直接從後台做新增使用者。
2. 在新增使用者後,接著要修改「wp-config.php」內的相關設定。
請把wp-config.php修改成新增加的帳號和密碼。
方法三:
新增多個使用者,使其能隨機使用。簡單來說就是,假設Mysql最大連線數是5000,如果我新增了三個使用者,
上限就會變為5000*3=15000。此方式也較偏向於承租空間的使用者。
增加的方法如同方法二的三種新增辦法。基本上使用方式方法一和方法二就可以解決此問題了。
評論
此文章尚無評論。