使用 localhost 無法連線 MySQL 資料庫的解決方案
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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- WAMP無法連線mysql資料庫MySql資料庫
- 解決無法連線SQL Server資料庫的方法BWSQLServer資料庫
- HGAdmin無法連線本地資料庫解決方式資料庫
- 使用 Applet 連線資料庫 解決方案.....APP資料庫
- MyGeneration連線MySQL資料庫解決MySql資料庫
- MYSQL++ 資料庫連線超時的解決辦法LTMySql資料庫
- 寶塔皮膚無法遠端連線資料庫的解決方法資料庫
- MyGeneration連線MySql資料庫解決(轉)MySql資料庫
- Mysql實現全外部連線(mysql無法使用full join的解決辦法)MySql
- qt使用mysql,開啟資料庫,丟擲無法連線錯誤。QTMySql資料庫
- navicat無法遠端連線mysql的解決方法MySql
- sql server資料庫連線失敗/無法附加解決過程SQLServer資料庫
- MMNL absent ,資料庫無法連線資料庫
- 無法遠端連線mysql怎麼解決MySql
- MySQL複製過程中出現的從庫無法連線主庫的解決辦法MySql
- iis網站資料庫無法連線資料庫網站資料庫
- windows無法配置此無線連線的解決辦法Windows
- 使用cmd連線mysql資料庫MySql資料庫
- Win10系統下elecworks無法連線到資料庫的解決方法Win10資料庫
- Oracle自動斷開資料庫連線的解決辦法Oracle資料庫
- UiBot無法抓取Chrome元素和資料抓取工具無法使用的解決方案UIChrome
- MMMNL absent錯誤 ,資料庫無法連線資料庫
- 網站顯示無法連線資料庫網站資料庫
- Django使用pymysql連線MySQL資料庫DjangoMySql資料庫
- 使用PETAPOCO連線MYSQL資料庫MySql資料庫
- 使用ABP EntityFramework連線MySQL資料庫FrameworkMySql資料庫
- MFC 使用VS 連線 MySQL資料庫MySql資料庫
- shutdown immediate 持久無法關閉資料庫之解決方案資料庫
- OEM:Enterprise Manager 無法連線到資料庫例項 錯誤解決資料庫
- 【MySQL】自定義資料庫連線池和開源資料庫連線池的使用MySql資料庫
- PHP資料庫連線失敗–couldnotfinddriver解決辦法PHP資料庫
- 連線mysql資料庫MySql資料庫
- 連線資料庫-mysql資料庫MySql
- mysql資料庫連線過多的錯誤,可能的原因分析及解決辦法(轉)MySql資料庫
- 用Navicat連線資料庫-資料庫連線(MySQL演示)資料庫MySql
- 【YashanDB資料庫】PHP無法透過ODBC連線到資料庫資料庫PHP
- linux centos7 mysql無法遠端連線解決辦法LinuxCentOSMySql
- 遠端連線MySQL資料庫提示:ERROR 1130 (HY000)的解決辦法MySql資料庫Error