先描述一下我的问题:

刚装了MySQL Workbench,想使用一下,于是就想用它连接一下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。

Logo

更多推荐