"Arithmetic operation resulted in an overflow" MySQLConnection.Open() 上的错误



Setup:

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

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

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

我相信

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 工作台old_password加密和身份验证,重新启动数据库服务器,然后重新创建用户。 这为我解决了问题。 希望这对您有所帮助 - 祝您好运。

相关内容

最新更新