首页  >  文章  >  数据库  >  如何修复phpMyAdmin连接MySQL 8.0时出现'客户端未知的身份验证方法”错误?

如何修复phpMyAdmin连接MySQL 8.0时出现'客户端未知的身份验证方法”错误?

Barbara Streisand
Barbara Streisand原创
2024-11-23 22:41:10346浏览

How Can I Fix the

了解 phpMyAdmin 与 MySQL 8.0 的兼容性

在数据库管理领域,phpMyAdmin 仍然是一个广受欢迎的工具。然而,随着 MySQL 发展到最新版本 8.0,用户可能会遇到与 phpMyAdmin 的连接障碍。

遇到错误:

当尝试访问 phpMyAdmin 时,用户经常会遇到以下问题:

#2054 - The server requested authentication method unknown to the client

出现以下错误:

此错误源于 MySQL 中采用的增强安全措施8.0,引入了更强的密码哈希机制。

解决方案:

  1. 要解决此问题,您必须更改 MySQL 实例中为 root 用户指定的身份验证方法:
以 root 身份登录 MySQL 控制台用户:
root@9532f0da1a2a:/# mysql -u root -pPASSWORD
更改身份验证插件:
mysql> ALTER USER root IDENTIFIED WITH mysql_native_password BY 'PASSWORD';

通过将身份验证插件设置为 ' mysql_native_password,'您启用与phpMyAdmin。

Docker 环境解决方案:

docker run --name mysql -e MYSQL_ROOT_PASSWORD=PASSWORD -p 3306:3306 -d mysql:latest

docker exec -it mysql bash

mysql -u root -pPASSWORD

ALTER USER root IDENTIFIED WITH mysql_native_password BY 'PASSWORD';

exit

exit

docker run --name phpmyadmin -d --link mysql:db -p 8080:80 phpmyadmin/phpmyadmin:latest

对于使用 Docker 容器的用户:

其他注意事项:

mysql/mysql-server docker image:

# default-authentication-plugin=mysql_native_password

对于此 docker 映像,只需在 /etc/my.cnf 中取消注释以下行:

docker run --name mysql -e MYSQL_ROOT_PASSWORD=PASSWORD -e MYSQL_ROOT_HOST=% -p 3306:3306 -d mysql/mysql-server:latest
docker exec -it mysql sed -i -e 's/# default-authentication-plugin=mysql_native_password/default-authentication-plugin=mysql_native_password/g' /etc/my.cnf
docker stop mysql; docker start mysql
docker run --name phpmyadmin -d --link mysql:db -p 8080:80 phpmyadmin/phpmyadmin:latest

或者,可以使用以下解决方法命令使用:

default_authentication_plugin:

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';
更新的解决方案(09/13/2021):

注意:确保包括引号。

以上是如何修复phpMyAdmin连接MySQL 8.0时出现'客户端未知的身份验证方法”错误?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn