如何修正 MySQL 錯誤 2003:無法連線到「localhost:3306」上的 MySQL 伺服器

已發表: 2024-03-25

MySQL 錯誤 2003 無法連接到「localhost:3306」上的 MySQL 伺服器 (10061) 表示您的應用程式或工具正在嘗試使用預設連接埠 3306 連接到「localhost」上的 MySQL 資料庫伺服器,但失敗。錯誤訊息也告訴你什麼。 在討論修復 MySQL 錯誤 2003 (HY000) 的方法之前,了解一些關鍵術語、導致問題的原因以及將來如何避免它們非常重要。

 錯誤 2003 (HY000):無法連線到「localhost」上的 MySQL 伺服器 (10061)

MySQL 錯誤 2003 是什麼意思?

MySQL 伺服器透過連接埠 3306 託管在「localhost」(您自己的電腦)上。此錯誤訊息表示通訊發生故障,這表示連接到 MySQL 伺服器的嘗試不成功。 錯誤訊息中有一些術語需要澄清。 他們是這樣的:

MySQL Server是MySQL的資料庫伺服器軟體,用於儲存、復原和管理資料。

MySQL 中的HY000錯誤代碼是未指定問題的通用錯誤標記,在更具體的錯誤代碼不適用時使用。

「localhost:3306」 (10061)是指嘗試使用連接埠 3306 連線至在「localhost」(發出要求的電腦)上執行的 MySQL 伺服器失敗,錯誤代碼 10061 指示伺服器未主動偵聽指定連接埠。

現在解釋完術語後,是時候看看導致此錯誤的原因了。

MySQL為什麼會出現2003錯誤?

此問題有幾個潛在原因。 讓我們把它們分解一下。

MySQL 伺服器未執行:最簡單的情況是,此錯誤可能表示您嘗試存取的 MySQL 伺服器未執行。

防火牆封鎖:如果您的防火牆已設定為封鎖連接埠 3306 上的傳入連接,則您的連線嘗試將會失敗。

連接設定不正確:這可能是由於在連接字串中使用了錯誤的連接埠、主機名稱甚至 IP 位址。

網路問題:有時,問題可能不在於您這邊或 MySQL 本身,而是兩者之間的網路。這可能包括從簡單的網路中斷到更複雜的 DNS 解析問題。

了解 MySQL 錯誤 2003 背後的原因是排除故障的第一步。 如果不看到根源,無論是在現場還是本地環境中,都很難解決任何問題。

MySQL錯誤2003是如何出現的?

MySQL 中的錯誤 2003 可能會以各種形式顯示,具體取決於您的設定細節和連接方法。 儘管錯誤訊息可能有所不同,但原因和修復步驟通常保持不變。

以下是此錯誤可能出現的一些常見方式:

錯誤 2003: Can't connect to MySQL server on '127.0.0.1:3306' :此訊息明確指出嘗試使用 IP 位址 127.0.0.1(預設情況下本機的環回 IP 位址)連接到 MySQL連接埠3306。這表示連線嘗試不成功,可能是由於伺服器未運作或防火牆阻止存取。

MySQL 錯誤 2003

無法透過套接字「/var/lib/mysql/mysql.sock」連接到本機 MySQL 伺服器:這種變化主要發生在 Unix 和 Linux 環境中。它表明客戶端正在嘗試透過 Unix 套接字檔案(在本例中為 /var/lib/mysql/mysql.sock)進行連接,但該檔案要么不存在,要么伺服器未運行,要么存在權限問題阻止使用權。

MySQL Workbench 錯誤代碼 2003:使用 MySQL Workbench 時,此錯誤會顯示相同的程式碼,但通常伴隨更使用者友善的解釋。這仍然意味著連接到 MySQL 伺服器時出現問題,這可能是由於上述任何原因或與 MySQL Workbench 配置相關的特定問題造成的。

每個訊息都包含有關錯誤原因的提示。 在選擇如何修復錯誤之前,您可以仔細閱讀該訊息。

如何修復 MySQL 錯誤 2003?

修正 MySQL 錯誤 2003「localhost:3306」涉及幾個步驟,以確保您的 MySQL 伺服器可存取並正確設定連線。 以下是您可以在不同作業系統上執行的步驟。

1.確保MySQL伺服器正在運行

首先,驗證 MySQL 伺服器是否正在您的電腦上執行。 如果伺服器未運行,則任何連線嘗試都不會成功。

在 Linux 上

  1. 透過在終端機執行「 sudo systemctl status mysql檢查 MySQL 服務的狀態
  2. 使用 sudo systemctl start mysql”啟動服務 sudo Linux,魔法詞

在 Windows 上

  1. 打開服務應用程式(在「開始」功能表中搜尋它)。
  2. 向下捲動找到MySQL 服務並檢查其狀態。
  3. 如果它沒有運行,請右鍵單擊它並選擇“啟動”

2.檢查防火牆設置

正如我們之前討論的,防火牆可以透過阻止連接埠 3306(MySQL 使用的預設連接埠)來阻止連接到 MySQL。 若要檢查錯誤是否來自防火牆,您可以採取以下步驟。

在 Linux 上

  1. 若要管理防火牆設置,請使用 ufw (簡單防火牆)。
  2. 若要允許 MySQL 流量,請使用` sudo ufw allowed 3306`

在 Windows 上

  1. 開啟Windows Defender 防火牆。
  2. 轉到高級設定
  3. 檢查入站規則是否有任何阻止連接埠 3306 的規則
  4. 相應地調整它們。

3.驗證MySQL伺服器配置

MySQL 設定檔 Linux 上my.cnf」Windows 上my.ini 」)具有網路連線的關鍵設定。 確保檔案設定正確:

- 連接埠應設定為 3306。

- bind-address」應該在行首用「#」註解掉,或設定為 127.0.0.1 以接受來自本機的連線。 如果您要遠端連接,則可能會設定為 0.0.0.0或伺服器的特定 IP 位址。

通常可以在 Linux/etc/mysql/ 」下找到「 my.cnf」 ,或是在 Windows 上的MySQL 安裝目錄找到my.ini 」。

4. 檢查網路配置

確保您的網路設定不會導致問題。 驗證「localhost」是否解析為 127.0.0.1

在 Linux 上:

  1. 開啟終端機 → 輸入` ping localhost` → 按Enter 鍵以 ping 本機。
  2. 您應該會看到指示「localhost」解析到的 IP 位址的回應,該位址應該是 127.0.0.1
  3. 如果回應顯示`127.0.0.1` ,則 `localhost` 已正確解析。 Ctrl + C停止 ping 過程。

在 Windows 上:

  1. 開啟命令提示字元 → 輸入` ping localhost` → 按Enter 鍵以 ping 本機。
  2. 在回應中尋找 IP 位址。
  3. 如果輸出包含`127.0.0.1` ,則您的 `localhost` 設定正確。
  4. 關閉視窗即可退出。

確保您的主機檔案中沒有條目將 ` localhost ` 重定向到不同的 IP。 主機檔案位於Linux/etc/hosts 」和 Windows 上的「 C:\Windows\System32\drivers\etc\hosts

5. 使用 TCP/IP 連接

當使用 MySQL Workbench 等工具連接到資料庫時,請確保連接方法設定為TCP/IP TCP/IP 連線更加通用,特別是在套接字檔案存在設定問題的情況下。

開啟 MySQL Workbench → 存取連線設定 → 選擇連線標籤 → 從清單中選擇連線方法為「標準 (TCP/IP)」 → 確認設定

確保正確輸入其他詳細信息,例如主機名稱(通常是 localhost)、連接埠(預設為 3306)、使用者名稱和密碼。

按一下「測試連線」按鈕,驗證 MySQL Workbench 是否可以使用 TCP/IP 成功連線到 MySQL 伺服器。

結論

MySQL 錯誤 2003 表示無法連線到「localhost:3306」上的 MySQL 伺服器。 對於資料庫管理員和開發人員來說,這是一個常見但可以解決的挑戰。 此錯誤本質上是應用程式和 MySQL 伺服器之間的通訊故障,可能由多種根本原因造成,包括 MySQL 伺服器關閉、防火牆限制、連線設定不正確或網路問題。

了解 MySQL Error 2003 的複雜性對於有效排除故障至關重要。 從錯誤代碼 (HY000) 的細節到嘗試連接到連接埠 3306 上的「localhost」的含義,每個細節都可以讓您深入了解當前問題的本質。

閱讀完本指南後,您應該已經解決了 MySQL 錯誤 2003,所以恭喜您!