1

设置:

Windows 7 SP1 64 位 Visual Studio 2012 MySQL .Net 连接器 6.6.4

我有一个 vb .net WinForm 应用程序,它使用 MySQL .Net 连接器连接到 MySQL 服务器。它工作得很好。然后我格式化了电脑,重新安装了与以前相同的 Windows 版本,但我安装了一个稍新版本的 MySQL .Net 连接器,以及 Visual Studio 2012 而不是 2010。

当我打开连接的代码执行时,即:

Dim mySQLcon As New MySql.Data.MySqlClient.MySqlConnection("SERVER=www.tadirect.co.za;DATABASE=tadirq_db1;UID=********;PASSWORD=********;")
mySQLcon.Open()

在 mySQLcon.Open() 行我得到以下异常:

System.OverflowException: Arithmetic operation resulted in an overflow at MySql.Data.MySqlClient.Authentication.MySqlAuthenticationPlugin.HandleAuthChange(MySqlPacket packet)
at MySql.Data.MySqlClient.Authentication.MySqlAuthenticationPlugin.Authenticate(Boolean reset)
at MySql.Data.MySqlClient.NativeDriver.Authenticate(String authMethod, Boolean reset)
at MySql.Data.MySqlClient.NativeDriver.Open() at MySql.Data.MySqlClient.Driver.Open()
at MySql.Data.MySqlClient.Driver.Create(MySqlConnectionStringBuilder settings)
at MySql.Data.MySqlClient.MySqlPool.GetPooledConnection()
at MySql.Data.MySqlClient.MySqlPool.TryToGetDriver() at MySql.Data.MySqlClient.MySqlPool.GetConnection()
at MySql.Data.MySqlClient.MySqlConnection.Open()
at TAD_Automator.modWebsite.UpdateMySQLDatabase_Cases(Boolean bSilent)}

我尝试将构建从任何 CPU 更改为 32 位和 64 位,但没有任何区别......

有任何想法吗?在我重新安装 Windows/VS/MySQL 之前,它曾经可以工作...

4

2 回答 2

1

我找到了解决方案。安装 MySQL 连接器 6.1.6,您将解决问题。

于 2013-02-04T22:15:58.523 回答
0

我相信 MySQL 放弃了对他们在 6.6 之前使用的旧式密码加密的支持。我遇到了同样的问题,我不得不关闭我的数据库服务器上的 old_password 支持,然后重新创建用户,以便使用新密码函数对密码进行哈希处理。

查看这个错误线程: http ://bugs.mysql.com/bug.php?id=67953

查看此链接以获取更多信息: http ://dev.mysql.com/doc/refman/5.0/en/old-client.html

作为一个新手,我更容易删除有问题的用户,更改数据库选项以使用 MySQL Workbench 关闭 old_password 加密和身份验证,重新启动数据库服务器,然后重新创建用户。这为我解决了这个问题。希望这可以帮助你 - 祝你好运。

于 2013-01-11T17:38:26.893 回答