如果你使用PHP連接MySQL資料庫時遇到了以下錯誤提示:
PHP Warning: mysqli_connect(): (HY000/2002): Connection refused
那麼你可以嘗試按照下面的步驟來解決這個問題。
首先應該檢查MySQL服務是否正常執行,如果服務未執行或啟動失敗,就可能會導致連線被拒絕的錯誤。你可以透過以下指令來檢查MySQL服務的狀態:
$ systemctl status mysql.service
如果MySQL服務未執行,你可以使用下列指令啟動服務:
# $ systemctl start mysql.service
如果MySQL服務已經在執行,你需要檢查MySQL服務是否監聽正確的連接埠。預設情況下,MySQL服務監聽埠為3306。你可以透過以下命令來檢查MySQL服務綁定的連接埠:
$ netstat -an | grep 3306
如果MySQL服務未綁定正確的端口,你需要在MySQL設定檔( my.cnf)中加入以下行:
[mysqld]
port=3306
修改完設定檔後,你需要重新啟動MySQL服務才能讓修改生效:
$ systemctl restart mysql.service
如果MySQL服務已經正確運行,並且監聽了正確的端口,你需要檢查用戶名和密碼是否正確。在連接MySQL時,你需要使用正確的使用者名稱和密碼才能登入MySQL伺服器。如果你不確定使用者名稱和密碼是否正確,可以嘗試在MySQL命令列介面中使用這個使用者名稱和密碼登入:
$ mysql -u username -p
在這個指令中,你需要將"username"替換為你要使用的使用者名,然後輸入這個使用者的密碼登入MySQL伺服器。如果登入成功,表示你輸入的使用者名稱和密碼是正確的。
最後一步是確認連接MySQL的使用者是否有足夠的權限來存取需要使用的資料庫。在連接MySQL伺服器時,你需要指定要連接的資料庫名稱。如果指定的資料庫不存在或你沒有存取這個資料庫的權限,那麼連線就會被拒絕。
你可以透過以下指令來檢查MySQL使用者所擁有的權限:
$ mysql -u username -p -e "SHOW GRANTS FOR username;"
#在這個命令中,你需要將"username"替換為你要查詢權限的MySQL使用者。執行完這個指令後,你就可以看到這個使用者所擁有的權限。
如果你要存取的資料庫不存在或沒有存取權限,你需要在MySQL命令列介面中使用以下命令來建立或授予存取權限:
CREATE DATABASE dbname;
GRANT ALL PRIVILEGES ON dbname.* TO 'username'@'localhost';
在這個指令中,你需要將"dbname"替換為你要建立的資料庫名稱,"username"為你要授權的MySQL使用者名稱。
總結
透過上述這些步驟,你應該已經可以解決PHP Warning: mysqli_connect(): (HY000/2002): Connection refused的錯誤。首先,你需要檢查MySQL服務是否已經啟動並且監聽了正確的連接埠;其次,你需要確認輸入的使用者名稱和密碼是否正確;最後,你需要檢查MySQL使用者是否具有存取資料庫的權限。
以上是PHP Warning: mysqli_connect(): (HY000/2002): Connection refused的解決方法的詳細內容。更多資訊請關注PHP中文網其他相關文章!