MySQLConnection.Open()上的“算术运算导致溢出”错误

时间:2012-12-13 12:00:32

标签: .net mysql

设定:

Windows 7 SP1 64位 Visual Studio 2012 MySQL .Net Connector 6.6.4

我有一个vb .net WinForm应用程序,它使用MySQL .Net Connector连接到MySQL服务器。它工作得很好。我然后格式化了电脑,重新安装了与以前相同版本的Windows,但我安装了一个稍微更新版本的MySQL .Net Connector,以及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之前工作......

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分: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加密和身份验证,重新启动数据库服务器,然后重新创建用户。这解决了我的问题。希望这对你有所帮助 - 祝你好运。