不支持身份验证方法'mysql_old_password'

时间:2012-12-04 15:38:40

标签: mysql visual-studio-2012 connector-net

更新了mysql连接器。 Net与版本6.6.4提供程序集成与visual studio 2012,但现在当我尝试配置与edmx的连接时,出现错误“身份验证方法'mysql_old_password'不受支持”。

3 个答案:

答案 0 :(得分:8)

当您连接到以旧密码格式(http://dev.mysql.com/doc/refman/5.0/en/old-client.html)存储密码的MySQL数据库时,会显示此错误消息。较新的MySQL客户端不允许使用旧密码格式与数据库建立连接,因为它不太安全。

有人建议在MySQL服务器上设置old_passwords=1,但我认为将密码升级为新的密码格式会更好。然后可以再次设置MySQL连接,并且您的数据库将得到更好的保护。

您可以在此处了解如何将MySQL密码从旧格式升级到新格式:http://code.openark.org/blog/mysql/upgrading-passwords-from-old_passwords-to-new-passwords

答案 1 :(得分:2)

MysqL Connector / NET 6.6.x(从6.6.2开始)放弃了对旧密码样式身份验证的支持(由于不安全而被弃用,并且有记录的攻击方式)。

当尝试使用旧密码样式帐户时,您将收到Arithmethic溢出错误(授予,更友好的错误会更好)。

如此错误报告中所述:http://bugs.mysql.com/bug.php?id=66647 对于Connector / NET,您必须使用Native 4.1样式密码(old_passwords = 0)。

其他选项是Windows样式身份验证,也支持,但您需要一些MySql商业版(标准MySql服务器不支持Windows身份验证)。

答案 2 :(得分:1)

Mysql_old_password是临时的,可以在4.1.1之后用于较旧的mysql客户端,以便对4.1.1之前的mysql服务器进行身份验证。

在mysql服务器中设置var old_passwords=1 my.ini应启用此功能。