VB.Net应用程序无法连接到本地MySQL,但我可以从命令连接

时间:2011-09-30 02:20:12

标签: mysql vb.net windows-xp

我们有一个VB.Net应用程序,可以在我们在不同Windows XP SP3计算机上的测试中正常运行。但是有一台机器显示此错误:

  

无法连接到任何指定的MySQL主机

使用mysql命令,我们可以成功连接到数据库。我们已经检查过可能阻止连接的任何其他应用程序或防火墙,但似乎没问题。我们还重新安装了系统(安装过程中没有错误),但MySQL错误消息没有改变。

系统设置与其他计算机完全相同。我们在连接字符串中使用“localhost”作为服务器。 “hosts”文件有默认值(在那里没什么奇怪的。)

有没有人有类似的经历,可以指出我正确的方向?

1 个答案:

答案 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?我没有找到任何方法在设置中更改它,也没有任何关于此类问题的报告。

我希望这有助于遇到同样问题的其他人。

现在我可以休息了......