我们有一个VB.Net应用程序,可以在我们在不同Windows XP SP3计算机上的测试中正常运行。但是有一台机器显示此错误:
无法连接到任何指定的MySQL主机
使用mysql命令,我们可以成功连接到数据库。我们已经检查过可能阻止连接的任何其他应用程序或防火墙,但似乎没问题。我们还重新安装了系统(安装过程中没有错误),但MySQL错误消息没有改变。
系统设置与其他计算机完全相同。我们在连接字符串中使用“localhost”作为服务器。 “hosts”文件有默认值(在那里没什么奇怪的。)
有没有人有类似的经历,可以指出我正确的方向?
答案 0 :(得分:2)
花了我一个多小时来搞清楚......我试图看看网络配置是否有问题。所以我发出:
netstat -na
它给了我一些线索:将它与其他计算机(工作正常)进行比较,我发现了一个区别:
不工作:
Proto Local Address Foreign Address State
TCP [::]:3306 [::]:0 LISTENING 0
<强> WORKING:强>
Proto Local Address Foreign Address State
TCP 127.0.0.1:3306 127.0.0.1:0 LISTENING
那么,什么是“[::]”,为什么这个零在右边?
<强>解答:强>
我发现“[::]”表示IPv6中的127.0.0.1(大约零,我不知道)。 所以我检查了计算机中无法正常工作的TCP / IP设置,并安装了“TCP / IP IPv6”(工作人员没有)。我卸载它,重新启动,瞧!有效! :)
也许某些网卡安装程序会自动添加IPv6?不管是什么原因,那就是问题所在。
为了防止以后出现这种情况,为简化起见,我们可以发出命令:
> ipv6 uninstall
它将自动删除它。
解决问题的一种更优雅的方法是在VB.net系统中实现IPv6支持(我认为它解释为here),但这将在以后完成。
我的猜测是默认情况下MySQL 5.5是否支持IPv6?我没有找到任何方法在设置中更改它,也没有任何关于此类问题的报告。
我希望这有助于遇到同样问题的其他人。
现在我可以休息了......