更新了 mysql 连接器。Net 到 6.6.4 版提供程序以与 Visual Studio 2012 集成,但现在当我尝试配置与 edmx 的连接时,出现错误“不支持身份验证方法 'mysql_old_password'”。
3 回答
当您连接到密码以旧密码格式 ( http://dev.mysql.com/doc/refman/5.0/en/old-client.html ) 存储的 MySQL 数据库时,会显示此错误消息。较新的 MySQL 客户端不允许使用旧密码格式与数据库建立连接,因为它的安全性较低。
有人会建议old_passwords=1
在 MySQL 服务器上设置,但我认为将密码升级为新的密码格式会更好。然后可以再次设置 MySQL 连接,您的数据库将得到更好的保护。
您可以在此处阅读有关如何将 MySQL 密码从旧格式升级到新格式的信息:http: //code.openark.org/blog/mysql/upgrading-passwords-from-old_passwords-to-new-passwords
Mysql 连接器/NET 6.6.x(从 6.6.2 开始)放弃了对旧密码样式身份验证的支持(由于不安全而被弃用,并且有记录的攻击方法)。
尝试将其与旧密码样式帐户一起使用时,您将收到算术溢出错误(当然,更友好的错误会更好)。
如本错误报告所述:http : //bugs.mysql.com/bug.php?id=66647 对于连接器/NET,您必须使用本机 4.1 样式的密码(即 old_passwords=0)。
其他选项是 Windows Style Authentication,它也受支持,但您需要一些 MySql 商业版(标准 MySql 服务器不支持 Windows 身份验证)。
Mysql_old_password 是临时的,用于在 4.1.1 之后的旧 mysql 客户端对 4.1.1 之前的 mysql 服务器进行身份验证。
old_passwords=1
在您的 mysql 服务器 my.ini 中设置 var应该启用此功能。