使用 localhost 無法連線 MySQL 資料庫的解決方案

oneweaklight發表於2011-07-19

phpMyAdmin 是用 PHP 編寫的基於 Web 的,最出色的 MySQL 資料庫圖形使用者介面管理平臺之一,透過它可以方便的對資料庫進行操作,例如建立、複製、刪除資料等等,輸卻無需逐字逐句地輸入 SQL 命令。phpMyAdmin 的使用不是本文的重點,在作者剛剛接觸這個軟體時,配置是一個大問題(事實上對於很多初學者甚至熟練的程式設計師都一樣),本文主要解決 Windows Vista 和 Windows 7 等平臺下 phpMyAdmin 的連線問題。

在保證其它配置都完全正確的前提下,我發現自己的"伺服器"(Windows 7 32bit)始終無法正確連線到 MySQL 伺服器。在網上搜尋問題時發現有不少站長也遇到了同樣的困惑,但卻找不到解決方案。情況類似,無法使用"localhost"連線到 MySQL 伺服器,而用 127.0.0.1 卻可以。起初作者也弄不明白這是為什麼,幾乎絕大部分的網路教材都把 localhost 等同於 127.0.0.1 本地迴環地址。而事實上是的,只是在 WinVista 及 Win7 下,localhost 有著另外一個更高層次的含義。

在 Win7 命令提示符(CMD)下 Ping localhost 有如下結果:

正在 Ping WinSeven-PC [::1] 具有 32 位元組的資料:
來自 ::1 的回覆: 時間<1ms
來自 ::1 的回覆: 時間<1ms
來自 ::1 的回覆: 時間<1ms
來自 ::1 的回覆: 時間<1ms

::1 的 Ping 統計資訊:
資料包: 已傳送 = 4,已接收 = 4,丟失 = 0 (0% 丟失),
往返行程的估計時間(以毫秒為單位):
最短 = 0ms,最長 = 0ms,平均 = 0ms

從上面可以清楚地看出環回沒有問題,可是為什麼 Ping localhost 回覆地址卻是"::1","::1"是什麼東西?

原來自從 WinVista 開始,Windows 系統就預設開啟了 IPv6 協議,而這個"::1"正是 IPv6 的環回地址(00:00:00:00:00:00:00:01 的壓縮形式),但是 MySQL 的常規版本並不支援透過 IPv6 連線,這該如何解決,難道要關閉 IPv6 協議嗎?這是一種解決方法,不過也可以透過修改 host 來解決。

從 WinVista 和 Win7 的 hosts 檔案裡可以看出,localhost 並沒有直接被解析為 127.0.0.1 ,而是 DNS 將根據當前連線的協議來自動選擇將其解析為 v4 地址還是 v6 地址:

# localhost name resolution is handled within DNS itself.
# 127.0.0.1 localhost
# ::1 localhost

而在此我們為了解決 localhost 的連線問題,可以給 host 加上這麼一條,以告訴系統強制使用 IPv4 連線。直接在 hosts 檔案的末尾加上

127.0.0.1 localhost

這一條語句(需要修改檔案許可權)。再次 Ping 一下 localhost:

正在 Ping WinSeven-PC [127.0.0.1] 具有 32 位元組的資料:
來自 127.0.0.1 的回覆: 位元組=32 時間<1ms TTL=128
來自 127.0.0.1 的回覆: 位元組=32 時間<1ms TTL=128
來自 127.0.0.1 的回覆: 位元組=32 時間<1ms TTL=128
來自 127.0.0.1 的回覆: 位元組=32 時間<1ms TTL=128
127.0.0.1 的 Ping 統計資訊:

資料包: 已傳送 = 4,已接收 = 4,丟失 = 0 (0% 丟失)
往返行程的估計時間(以毫秒為單位):
最短 = 0ms,最長 = 0 ms,平均 = 0ms

可以看出 localhost 已經被強制解析為 IPv4 的環回地址。覺得繁瑣的網友,可以直接使用 127.0.0.1 替換 localhost 來連線,效果都是一樣的,在效能上可能有所差異。另外最新版本的 phpMyAdmin 已經提供了圖形介面的配置檔案自動生成及下載功能,預設位於 phpMyAdmin/Setup/ 目錄下,根據提示要求進行相應設定,然後將 config.inc.php 檔案下載並放到 phpMyAdmin 根目錄即可。

[@more@]

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/25067344/viewspace-1052714/,如需轉載,請註明出處,否則將追究法律責任。

相關文章