首頁  >  文章  >  後端開發  >  PHP Warning: mysqli_connect(): (HY000/2002): Connection refused的解決方法

PHP Warning: mysqli_connect(): (HY000/2002): Connection refused的解決方法

WBOY
WBOY原創
2023-06-23 08:54:193080瀏覽

如果你使用PHP連接MySQL資料庫時遇到了以下錯誤提示:

PHP Warning: mysqli_connect(): (HY000/2002): Connection refused

那麼你可以嘗試按照下面的步驟來解決這個問題。

  1. 確認MySQL服務是否正常執行

首先應該檢查MySQL服務是否正常執行,如果服務未執行或啟動失敗,就可能會導致連線被拒絕的錯誤。你可以透過以下指令來檢查MySQL服務的狀態:

$ systemctl status mysql.service

如果MySQL服務未執行,你可以使用下列指令啟動服務:

# $ systemctl start mysql.service

  1. 檢查MySQL服務是否監聽正確的連接埠

如果MySQL服務已經在執行,你需要檢查MySQL服務是否監聽正確的連接埠。預設情況下,MySQL服務監聽埠為3306。你可以透過以下命令來檢查MySQL服務綁定的連接埠:

$ netstat -an | grep 3306

如果MySQL服務未綁定正確的端口,你需要在MySQL設定檔( my.cnf)中加入以下行:

[mysqld]
port=3306

修改完設定檔後,你需要重新啟動MySQL服務才能讓修改生效:

$ systemctl restart mysql.service

  1. 確認用戶名和密碼是否正確

如果MySQL服務已經正確運行,並且監聽了正確的端口,你需要檢查用戶名和密碼是否正確。在連接MySQL時,你需要使用正確的使用者名稱和密碼才能登入MySQL伺服器。如果你不確定使用者名稱和密碼是否正確,可以嘗試在MySQL命令列介面中使用這個使用者名稱和密碼登入:

$ mysql -u username -p

在這個指令中,你需要將"username"替換為你要使用的使用者名,然後輸入這個使用者的密碼登入MySQL伺服器。如果登入成功,表示你輸入的使用者名稱和密碼是正確的。

  1. 確認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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn