正如其他人(Ref 1 Ref 2和Ref 3)当前的phpMyAdmin版本(4.8.2)+ MySQL 8.0.11 + PHP 7.2.8无法正常工作。
当您尝试打开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迁移手册here中所述,在参考资料2中已描述为解决方案,您可以通过在docker内部执行以下mysql查询来纠正此问题:
ALTER USER root IDENTIFIED WITH mysql_native_password BY 'ROOTPASSWORD';
(为了运行此命令,我使用 docker exec -it CONTAINERID bash 并执行 mysql 命令)
它有效。主要问题是我需要在容器启动后立即触发该查询(当前方法是手动的,而且扩展性很差)。我认为这可以通过不同的方式实现:
第一个是不安全的IMO,因为mysql用户必须具有较高的特权,尽管运行此脚本时只有root用户。我还没有测试。
第二个是最好的IMO,但是我无法弄清楚如何使用Dockerfile实施,因为我键入的所有内容都在安装mysql和phpMyAdmin之前运行。我该如何实现?
答案 0 :(得分:1)
作为一个简单的解决方案,您可以构建自定义的mysql映像并在其中运行命令。然后mysql将以已经进行的修改开始。