首页  >  文章  >  数据库  >  如何修复 MySQL 8.0 的 phpMyAdmin 身份验证问题?

如何修复 MySQL 8.0 的 phpMyAdmin 身份验证问题?

Linda Hamilton
Linda Hamilton原创
2024-11-24 03:41:13138浏览

How to Fix phpMyAdmin Authentication Issues with MySQL 8.0?

MySQL 8.0 上的 phpMyAdmin

最近发布 MySQL 8.0 后,用户在访问 phpMyAdmin 时遇到了困难。此问题源于 phpMyAdmin 和服务器之间的身份验证方法差异。要解决此问题,请按照以下步骤操作:

登录 MySQL 控制台

首先,使用适当的命令以 root 用户身份登录到 MySQL 控制台:

mysql -u root -pPASSWORD

更改身份验证插件

登录后,将身份验证插件更改为mysql_native_password 通过执行以下查询:

ALTER USER root IDENTIFIED WITH mysql_native_password BY 'PASSWORD';

Docker 化环境

在 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

mysql/mysql-server

如果使用 mysql/mysql-server docker图片,请记住此解决方案仅适用于开发环境。

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 mysql -u root -pPASSWORD -e "ALTER USER root IDENTIFIED WITH mysql_native_password BY 'PASSWORD';"
docker run --name phpmyadmin -d --link mysql:db -p 8080:80 phpmyadmin/phpmyadmin:latest

在 /etc/my.cnf 中取消注释

要永久更改身份验证插件,请在 /etc 中取消注释以下行/my.cnf 文件:

default_authentication_plugin=mysql_native_password

但是,使用此方法

更新的解决方法 (01/30/2019)

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 exec -it mysql mysql -u root -pPASSWORD -e "ALTER USER root IDENTIFIED WITH mysql_native_password BY 'PASSWORD';"
docker stop mysql; docker start mysql
docker run --name phpmyadmin -d --link mysql:db -p 8080:80 phpmyadmin/phpmyadmin:latest

更新的解决方案 (09/13/2021)

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';

确保引号包含在内显示。

以上是如何修复 MySQL 8.0 的 phpMyAdmin 身份验证问题?的详细内容。更多信息请关注PHP中文网其他相关文章!

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