实验室服务器网站是Apache+PHP+MySQL,以前运行正常。某一天突然发现所有使用了MySQL的页面均打不开,显示:Can't
connect to MySQL server on 'localhost' (10061)!
检查了一下,MySQL服务正在运行啊,但是为什么连不上呢?在CMD中,可以正常使用MySQL的命令,防火墙我都没开,难道是端口的问题?于是用telnet
127.0.0.1
3306测试端口,结果它竟然提示连接失败:不能打开到主机的连接,在端口3306:连接失败!my.ini中确实用的是3306端口,用netstat
-an查看,3306处于被监听状态。那到底是什么原因呢?
崩溃了一晚上,上网搜,终于找到解决办法了,先贴出来,如果大家有类似问题,不妨注意一下了:
前一阵子学校开了ipv6资源站,我就装了ipv6,就是这个ipv6出了问题!原本mysql是使用默认的ipv4的。在my.ini中没有bind-address
= XXXX的参数,所以它使用默认的ipv4,现在我安装了ipv6后,可能它又默认使用ipv6了吧。
在my.ini的[mysqld]部分中加一行bind-address = 127.0.0.1,问题解决了!telnet
127.0.0.1 3306也能连通了,MySQL Workbench也能连上MySQL了!哈哈!
PS:MySQL这里使用了bind-address后,phpMyAdmin的config.inc.php中host最后也改成127.0.0.1,否则可能连不上MySQL。