5.3.9更新旧身份验证协议密码

MySQL 4.1扩展密码从16到41字节的哈希。但是,升级MySQL不会自动更新旧密码密码,因此现有的密码继续以已弃用格式存储。这是因为MySQL不会将密码存储为纯文本,因此重新生成密码哈希需要用户干预。

相关的secure_auth.默认情况下,选项已启用MySQL 5.6。始终启用了MySQL 5.7,这意味着它可以被禁用。未来的MySQL版本将删除此选项。启用此选项后,具有旧格式中定义的密码的用户将无法登录MySQL。

通过所有所说的,已弃用的密码格式与MySQL 5.7不起作用。必须更新使用旧格式的所有密码。本节文档如何使用MySQL Workbench升级这些密码。有关使用MySQL命令行迁移远离旧密码格式的信息而不是MySQL Workbench,请参阅远离4.1密码散列和MySQL_OLD_PASSWORD插件

笔记

MySQL存储密码的方法由身份验证插件定义。旧方法使用mysql_old_password.身份验证插件,以及当前的默认方法使用mysql_native_password.。as mysql 5.6,aSHA256_PASSWORD.虽然它需要SSL或加密连接,但也可以使用选项。当MySQL Workbench升级密码时,它升级mysql_old_password.mysql_native_password.。有关身份验证插件的其他信息,请参阅可插拔身份验证

选项取决于您的secure_auth选项

升级密码确实有限制。以下是两种情况:

  • 如果是secure_auth.MySQL Server选项被禁用,然后你可以使用旧密码格式的用户登录,并更新用户自己的MySQL密码。但是,这在MySQL Workbench 6.3.5中不是一个选项,因为与旧密码格式的兼容性被删除了。由于这个原因,用户升级自己的密码格式的能力必须使用MySQL命令行,如下文所述远离4.1密码散列和MySQL_OLD_PASSWORD插件

    笔记

    如果使用MySQL命令行不是一个选项,那么您可以使用MySQL工作台的一个旧版本(版本6.3.4和更早),它允许您启用使用旧的认证协议选择下的选择先进的连接选项卡。旧版本的MySQL工作台可用https://10bet手机中文版downloads.10bet靠谱mysql.com/Archives/Workbench/

    如前所述,secure_auth.在MySQL 5.6中默认启用,并且在MySQL 5.7中始终启用。

  • 如果secure_auth.已启用,如果您的用户的密码以旧格式存储,则无法登录。尝试将失败并发出类似于“错误2049(HY000):使用旧(4.1.1前)的连接拒绝身份验证协议(客户端选项'secure_auth'已启用)”。如果要升级密码,可以禁用secure_auth.(不推荐)然后按照上面的描述进行更新,或者作为不同的特权用户(如root)登录,以更改不同用户的密码。

使用MySQL Workbench升级密码

记住上面的内容,有两种方法可以使用MySQL Workbench更新密码。

打开用户和权限来自管理导航器的选项卡。选择要从中更新的用户帐户用户帐户部分。如果使用旧的密码格式,你会在屏幕右下角看到以"This account is using the pre-mysql-4.1.1 password hash type."开头的文本,还有一个大的升级右侧的按钮。从这里,你可以:

  • 所有MySQL版本的选项:

    手动输入新密码或当前密码,然后单击升级。这将密码升级到更新的密码格式,MySQL用户现在可以使用您定义的新密码登录。

  • mysql 5.6及更高版本的选项:

    而不是编辑密码字段,而不是单独留下它并立即点击升级。从这里,您可以生成一个随机密码,并通过单击将其标记为过期重置为过期。使用此临时随机密码来登录用户,MySQL将在用户首次登录时提示新密码。

以下附图证明了两种方法中使用的步骤顺序:

图5.23升级旧密码:设置新密码

内容在周围的文本中描述。

图5.24升级旧密码:重置为随机过期密码

内容在周围的文本中描述。

重置为随机密码时,必须保存密码并将其提供给用户。您将在新的popup窗口中找到类似于下图的随机密码。

图5.25升级旧密码:随机密码弹出窗口

内容在周围的文本中描述。

完成升级后,请注意新的身份验证类型连接。在下一个图中所示的示例中,该值改变了标准(旧)标准。换句话说,身份验证类型从mysql_old_password.mysql_native_password.

图5.26升级密码:标准(旧)到标准

内容在周围的文本中描述。