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