【问题标题】:Authentication method 'mysql_old_password' not supported不支持身份验证方法“mysql_old_password”
【发布时间】:2014-11-07 00:53:57
【问题描述】:

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

【问题讨论】:

  • 请用一个真实的问题扩展您的问题。到目前为止,它只是一个声明..
  • 我的问题是如何使用 edmx 连接器 6.6.4 和 Visual Studio 2012 连接到 mysql,因为我不能这样做
  • @CristianoNascimento,我也有同样的问题。你的问题解决了吗?

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


【解决方案1】:

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

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

【讨论】:

  • 有没有办法在连接字符串中指定它?因为我没有权限访问mysql服务器设置
  • 我真的不知道。我对visual studio了解不多,只知道mysql。但我最好的猜测是你不能用连接字符串来做到这一点,因为这是一种必须由服务器激活的方法,可能在启动时。老实说,您应该尝试找出为什么您的连接器会使用旧密码,因为您应该尽量避免这种情况。 (加密错误)
【解决方案2】:

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

当尝试将它与旧密码样式帐户一起使用时,您会收到算术溢出错误(当然,更友好的错误会更好)。

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

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

【讨论】:

    【解决方案3】:

    当您连接到密码以旧密码格式 (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

    【讨论】:

      猜你喜欢
      • 2021-02-05
      • 1970-01-01
      • 2013-02-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-12-19
      • 2014-02-11
      相关资源
      最近更新 更多