MySQL身份验证方法错误 - 缓存SHA-2

时间:2018-05-02 09:00:08

标签: mysql mysqli phpmyadmin macos-sierra

当我尝试在我的localhost上访问phpmyadmin时,我收到了以下错误:

  

无法登录MySQL服务器

     

mysqli_real_connect():服务器请求的客户端未知的身份验证方法[caching_sha2_password]

     

mysqli_real_connect():( HY000 / 2054):服务器请求客户端未知的身份验证方法

经过研究,我明白我需要更改用户密码的身份验证方法。我按照这个link做了什么。我还确保config.inc.php文件中的信息是正确的。然而,我仍然遇到同样的错误。

我似乎无法理解:

  1. MySQL的当前身份验证方法是什么?
  2. 应该是什么?
  3. 如何更改?它是针对整个MySQL配置还是针对每个用户单独更改的?
  4. 更新 我注意到两件事:

    1. 用户表中有“password”字段,但是“authentication_string”
    2. “authentication_string”的长度为41.虽然我将密码设置为9个字符并使用它们登录。
      1. “插件”的值是“caching_sha2_password”
      • macOS High Sierra 10.13.3
      • Apache 2.4.28
      • PHPMyAdmin 4.8.0.1
      • MySQL 8.0.11

1 个答案:

答案 0 :(得分:1)

似乎MySQL在8.0.4和8.0.11版本之间更改了它们的身份验证方式。我不太明白为什么会在次要版本中实施这么大的改变,打破semantic versioning,但我们仍然在这里。

此处已有PHP bug reportphpMyAdmin bug report

关于此问题的previous Stackoverflow question附带了一个答案,建议对MySQL配置进行一些更改并修改用户帐户......虽然我还没有真正测试过这个并且并不是真的认可它表明的变化,似乎是让MySQL 8.0.11与PHP / phpMyAdmin一起使用的唯一方法。