使用 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/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/25067344/viewspace-1052714/

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值