使用 phpmyadmin 和 docker-compose 的身份验证错误
Posted
技术标签:
【中文标题】使用 phpmyadmin 和 docker-compose 的身份验证错误【英文标题】:Authentication error using phpmyadmin and docker-compose 【发布时间】:2019-09-26 00:26:51 【问题描述】:我正在尝试为 mysql 和 phpmyadmin 使用 docker-compose,但在尝试登录 phpmyadmin 时遇到身份验证错误。
我在 yaml 文件上尝试了几种配置,但都没有成功。
version: '3'
services:
db:
image: mysql
command: --default-authentication-plugin=mysql_native_password
restart: always
environment:
MYSQL_DATABASE: mydb
MYSQL_USER: root
MYSQL_PASSWORD: admin
MYSQL_ROOT_PASSWORD: admin
volumes:
- my-db:/var/lib/mysql
phpmyadmin:
image: phpmyadmin/phpmyadmin:latest
links:
- db
ports:
- 8080:80
restart: always
environment:
PMA_USER: root
PMA_PASSWORD: admin
volumes:
my-db:
当我尝试登录 phpmyadmin 时,我收到以下错误:
mysqli_real_connect():服务器请求客户端未知的身份验证方法[caching_sha2_password] mysqli_real_connect(): (HY000/2054): 服务器请求客户端未知的身份验证方法
我尝试将 yml 更改为:
version: '3'
services:
db:
image: mysql:57
restart: always
environment:
此后,容器不再启动,并给出以下消息:
docker_db_1 以代码 1 退出
【问题讨论】:
【参考方案1】:这很好用:
version: '3'
services:
db:
image: mysql:5.7
command: --default-authentication-plugin=mysql_native_password
restart: always
environment:
MYSQL_DATABASE: mydb
MYSQL_USER: root
MYSQL_PASSWORD: admin
MYSQL_ROOT_PASSWORD: admin
volumes:
- my-db:/var/lib/mysql
phpmyadmin:
image: phpmyadmin/phpmyadmin:latest
links:
- db
ports:
- 8080:80
restart: always
environment:
PMA_USER: root
PMA_PASSWORD: admin
volumes:
my-db:
记得在运行前删除卷(以防遇到问题)。
【讨论】:
成功了。我删除了音量并使用了您的示例并且工作正常。【参考方案2】:我只是在 docker-compose.yml 中复制了这段代码
version: '3'
services:
db:
image: mysql
command: --default-authentication-plugin=mysql_native_password
restart: always
environment:
MYSQL_DATABASE: mydb
MYSQL_USER: root
MYSQL_PASSWORD: admin
MYSQL_ROOT_PASSWORD: admin
volumes:
- my-db:/var/lib/mysql
phpmyadmin:
image: phpmyadmin/phpmyadmin:latest
links:
- db
ports:
- 8080:80
restart: always
environment:
PMA_USER: root
PMA_PASSWORD: admin
volumes:
my-db:
并运行命令docker stack deploy -c docker-compose.yml mysqllab
这是结果
enter image description here
【讨论】:
以上是关于使用 phpmyadmin 和 docker-compose 的身份验证错误的主要内容,如果未能解决你的问题,请参考以下文章
使用 phpMyAdmin 同步 MySQL 远程和本地数据库
使用 phpmyadmin 和 docker-compose 的身份验证错误