1

尝试在我的本地主机上访问 phpmyadmin 时,出现以下错误:

无法登录 MySQL 服务器

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

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

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

我似乎无法理解:

  1. MySQL当前的身份验证方法是什么?
  2. 应该是什么?
  3. 我该如何改变它?它是针对整个 MySQL 配置还是针对每个用户单独更改?

更新 我注意到两件事:

  1. 用户表中有“密码”字段,但有“身份验证字符串”
  2. “authentication_string”的长度是 41。虽然我将密码设置为 9 个字符并使用它们登录。
    1. “插件”的值为“caching_sha2_password”

  • macOS High Sierra 10.13.3
  • 阿帕奇 2.4.28
  • PHPMyAdmin 4.8.0.1
  • MySQL 8.0.11
4

1 回答 1

1

似乎 MySQL 在 8.0.4 和 8.0.11 之间改变了他们的身份验证方式。我真的不明白为什么会在一个小版本中实现如此大的变化,破坏语义版本控制,但我们仍然在这里。

已经有关于此的PHP 错误报告phpMyAdmin 错误报告

之前关于此问题的Stackoverflow 问题附带了一个答案,建议对 MySQL 配置进行一些更改并修改用户帐户......虽然我还没有实际测试过,也没有真正认可它建议的更改,但它似乎是目前让 MySQL 8.0.11 与 PHP/phpMyAdmin 一起工作的唯一方法。

于 2018-05-03T21:30:57.990 回答