VB.Net 应用程序无法连接到本地 MySQL,但我可以从命令连接
Posted
技术标签:
【中文标题】VB.Net 应用程序无法连接到本地 MySQL,但我可以从命令连接【英文标题】:VB.Net application can't connect to local MySQL but I can connect from command 【发布时间】:2011-11-28 03:41:07 【问题描述】:我们有一个 VB.Net 应用程序,它在我们在不同 Windows XP SP3 机器上的测试中运行良好。但是有一台机器显示此错误:
无法连接到任何指定的 mysql 主机
使用mysql命令,我们就可以成功连接数据库了。我们已经检查了可能阻止连接的任何其他应用程序或防火墙,但看起来很好。我们还重新安装了系统(安装过程中没有错误),但 MySQL 错误消息没有改变。
系统设置与其他计算机完全相同。我们在连接字符串中使用“localhost”作为服务器。 “hosts”文件有它的默认值(没有什么奇怪的)。
有没有人有类似的经历,可以指点我正确的方向?
【问题讨论】:
你有一个集中的(只有一个)数据库吗?还是每台计算机都有自己的数据库副本? 【参考方案1】:我花了一个多小时才弄清楚...我试图查看网络配置是否有问题。所以我发出:
netstat -na
它给了我一些线索:将它与其他计算机(工作正常)进行比较,我发现了一个不同之处:
不工作:
Proto Local Address Foreign Address State
TCP [::]:3306 [::]:0 LISTENING 0
工作:
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?我没有找到任何方法来更改设置,也没有报告此类问题。
我希望这对遇到同样问题的其他人有所帮助。
现在我可以去休息了……
【讨论】:
这仍然适用于带有 .Net 4.5 的 Windows 10以上是关于VB.Net 应用程序无法连接到本地 MySQL,但我可以从命令连接的主要内容,如果未能解决你的问题,请参考以下文章
如何在 VB.net 中连接到本地网络上的 Access 数据库?
如何使 datagridview 实时连接到本地存储在 VB.NET 中的访问数据库?
Rails 应用程序无法连接到 mysql,无法通过套接字 '/var/run/mysqld/mysql.sock' 连接到本地 MySQL 服务器 (2) (Mysql2::Error)
无法使用 JDBC 连接到 docker 中的本地 MySQL