一尘不染

在phpMyAdmin中使用SHA256设置用户密码后,访问被拒绝

mysql

在看到phpMyAdmin生成的默认密码使用了mysql_native_password并因此在使用相同密码时哈希没有改变,我更新了一个用户的密码并将哈希设置为SHA256。

当我尝试使用设置的密码再次登录时,它说:

mysqli_real_connect():(HY000 / 1045):用户’xxxx’@’xxxx’的访问被拒绝(使用密码:是)。

服务器使用https,而phpMyAdmin强制也使用SSL。

使用SHA256更改密码后,再次获得访问权限的唯一方法是手动设置密码并将密码插件恢复为mysql_native_password。

如何使用SHA256密码与用户登录phpMyAdmin?

注意:如果我尝试使用相同的用户名和SHA256密码登录到mysql控制台,则可以正常工作。


阅读 402

收藏
2020-05-17

共1个答案

一尘不染

MySQL最近更改了默认的身份验证类型,并且在MySQL和PHP之间,此更改花费了相当长的一段时间才能得到PHP的支持。旧方法是mysql_native_password,新方法是caching_sha2_password。从7.4开始的PHP版本支持新方法。由于这与PHP本身有关,因此支持此方法的phpMyAdmin要求您运行更新的PHP安装(phpMyAdmin本身已准备好进行此更改,但使用它的能力取决于您的PHP版本)。

您基本上有两个选择:

  1. 将您的PHP升级到7.4或更高版本。
  2. 将用户的身份验证类型更改为较旧的mysql_native_password。您可以通过编辑用户来做到这一点(从phpMyAdmin的“用户帐户”标签中,编辑用户,然后从下拉列表中更改身份验证方法)。
2020-05-17