MySQL 8.0上的phpMyAdmin

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (6738)

我已经安装了MySQL 8.0服务器和phpMyAdmin,但是当我尝试从浏览器访问它时,会发生以下错误:

#2054 - The server requested authentication method unknown to the client
mysqli_real_connect(): The server requested authentication method unknown to the client [caching_sha2_password]
mysqli_real_connect(): (HY000/2054): The server requested authentication method unknown to the client

我想它必须与实施的强密码和MySQL版本的相对新鲜度有关。

但我对最先进的驱动程序和连接配置一无所知。

有人遇到同样的问题并解决了吗?:d

使用apt安装编辑

apt-get install mysql-server phpmyadmin
提问于
用户回答回答于

使用root用户登录MySQL控制台:

root@9532f0da1a2a:/# mysql -u root -pPASSWORD

并使用密码更改身份验证插件:

mysql> ALTER USER root IDENTIFIED WITH mysql_native_password BY 'PASSWORD';
Query OK, 0 rows affected (0.08 sec)

您可以在MySQL 8.0参考手册上阅读有关首选身份验证插件的更多信息

https://dev.mysql.com/doc/refman/8.0/en/upgrading-from-previous-series.html#upgrade-caching-sha2-password

它在码头化的环境中完美运行:

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

因此,您现在可以使用root / PASSWORD 在http:// localhost:8080上登录phpMyAdmin

用户回答回答于

我通过执行以下操作解决了这个问题:

  1. 添加default_authentication_plugin = mysql_native_password到 my.cnf 的[mysqld]部分
  2. 输入mysql并通过执行类似操作创建新用户 CREATE USER 'root'@'localhost' IDENTIFIED BY 'password';
  3. 必要时授予权限。呃GRANT ALL PRIVILEGES ON * . * TO 'root'@'localhost';然后FLUSH PRIVILEGES;
  4. 用新用户登录phpmyadmin

扫码关注云+社区

领取腾讯云代金券