在看到phpMyAdmin生成的默认密码使用了mysql_native_password并因此在使用相同密码时哈希没有改变,我更新了一个用户的密码并将哈希设置为SHA256。
当我尝试使用设置的密码再次登录时,它说:
mysqli_real_connect():(HY000 / 1045):用户’xxxx’@’xxxx’的访问被拒绝(使用密码:是)。
服务器使用https,而phpMyAdmin强制也使用SSL。
使用SHA256更改密码后,再次获得访问权限的唯一方法是手动设置密码并将密码插件恢复为mysql_native_password。
如何使用SHA256密码与用户登录phpMyAdmin?
注意:如果我尝试使用相同的用户名和SHA256密码登录到mysql控制台,则可以正常工作。
MySQL最近更改了默认的身份验证类型,并且在MySQL和PHP之间,此更改花费了相当长的一段时间才能得到PHP的支持。旧方法是mysql_native_password,新方法是caching_sha2_password。从7.4开始的PHP版本支持新方法。由于这与PHP本身有关,因此支持此方法的phpMyAdmin要求您运行更新的PHP安装(phpMyAdmin本身已准备好进行此更改,但使用它的能力取决于您的PHP版本)。
mysql_native_password
caching_sha2_password
您基本上有两个选择: