Chinaunix首页 | 论坛 | 博客
  • 博客访问: 883387
  • 博文数量: 160
  • 博客积分: 420
  • 博客等级: 准将
  • 技术积分: 4566
  • 用 户 组: 普通用户
  • 注册时间: 2006-08-04 00:31
文章分类

全部博文(160)

文章存档

2011年(13)

2010年(3)

2009年(63)

2008年(81)

分类: WINDOWS

2011-05-10 10:52:57

    天津一客户用的vista操作系统,安装完软件,mysql数据库一直无法连接,配置文件没错,防火墙端口也没有阻挡。

    后来发现原因是,数据库连接默认没有采用local socket (named pipe on Windows)的方式,而是采用TCP/IP连接,因此必须知道一个实际的IP地址。而软件连接时数据库用的地址是localhost,一般的操作系统会把localhost映射为127.0.0.1,数据库实际连接的时候用的是127.0.0.1

而查看hosts配置文件时,发现这个vista系统里面把localhost映射为了::1,用::1这个地址是连接不上数据库的。

 

    解决方法:修改hosts文件即可,修改映射为127.0.0.1 localhost

    具体的映射文件的位置:c:/windows/system32/drivers/etc/hosts这个文件

    后来查资料得知原来::1并不是因为vista的原因,而是因为安装了ipv6协议的原因。卸载了ipv6协议应该也能解决这个问题。只是不确定强行把::1修改为127.0.0.1会不会导致其它的问题。

 

******************************************************************

附:网上关于vista下无法连接mysql5数据库的说明

没想到在Vista SP2 下安装Mysql5会遇到麻烦,安装过程都很顺利,Dos下访问mysql也完全没问题。可是通过Apache访问phpmyadmin就是不行,提示如下错误:
A connection attempt failed because the connected party did not (trying to connect via tcp://localhost:3306)

开始以为是mysql的版本问题,我先装的是5.1, 然后是5.435.0,均出现同样的问题。也根据网上流传的VistaMysql5.0无法运行的帖子,试过用ResHacker.exe修改MySQLInstanceConfig.exe,还是没能解决。

后来检查过VIsta的防火墙设置,3306端口已经打开,没有发现问题。开始估计问题出在 PHP脚本上,根据的官方解释:

Note: Whenever you specify “localhost” or “localhost:port” as server, the MySQL client library will override this and try to connect to a local socket (named pipe on Windows). If you want to use TCP/IP, use “127.0.0.1″ instead of “localhost”. If the MySQL client library tries to connect to the wrong local socket, you should set the correct path as Runtime Configuration in your PHP configuration and leave the server field blank.

localhost改为127.0.0.1,一起正常~

阅读(8848) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~