步骤 1) mysql5 和 phpmyadmin
对以下 mysql-phpmyadmin 配置进行镜像:
version: '3.6'
services:
db:
image: mysql:5.7.24
# image: mysql:8.0.18
# image: mariadb:10.4.8
# command: --default-authentication-plugin=mysql_native_password
restart: always
volumes:
- ./mysql5:/var/lib/mysql
# - ./mysql8:/var/lib/mysql
# - ./mariadb:/var/lib/mysql
environment:
- MYSQL_ROOT_PASSWORD=test
- MYSQL_DATABASE=test
- MYSQL_USER=test
- MYSQL_PASSWORD=test
phpmyadmin:
image: phpmyadmin/phpmyadmin:4.8.5
restart: always
depends_on:
- db
environment:
- PMA_HOST=db
- PMA_PORT=3306
- PMA_USER=test
- PMA_PASSWORD=test
ports:
- "3333:80"
我可以通过 phpmyadmin 访问我的mysql-database:http://localhost:3333/
步骤2)mysql8和phpmyadmin
现在我切换到 mysql8,其中只有图像和卷,并添加了 command
-选项和 mysql_native_password
-plugin:
version: '3.6'
services:
db:
# image: mysql:5.7.24
image: mysql:8.0.18
# image: mariadb:10.4.8
command: --default-authentication-plugin=mysql_native_password
restart: always
volumes:
# - ./mysql5:/var/lib/mysql
- ./mysql8:/var/lib/mysql
# - ./mariadb:/var/lib/mysql
environment:
- MYSQL_ROOT_PASSWORD=test
- MYSQL_DATABASE=test
- MYSQL_USER=test
- MYSQL_PASSWORD=test
phpmyadmin:
image: phpmyadmin/phpmyadmin:4.8.5
restart: always
depends_on:
- db
environment:
- PMA_HOST=db
- PMA_PORT=3306
- PMA_USER=test
- PMA_PASSWORD=test
ports:
- "3333:80"
我可以通过 phpmyadmin 访问我的mysql-database:http://localhost:3333/
步骤 3) mariadb 和 phpmyadmin
现在我使用以下配置切换到 mariadb,其中我只更改了图像和音量:
version: '3.6'
services:
db:
# image: mysql:5.7.24
# image: mysql:8.0.18
image: mariadb:10.4.8
command: --default-authentication-plugin=mysql_native_password
restart: always
volumes:
# - ./mysql5:/var/lib/mysql
# - ./mysql8:/var/lib/mysql
- ./mariadb:/var/lib/mysql
environment:
- MYSQL_ROOT_PASSWORD=test
- MYSQL_DATABASE=test
- MYSQL_USER=test
- MYSQL_PASSWORD=test
phpmyadmin:
image: phpmyadmin/phpmyadmin:4.8.5
restart: always
depends_on:
- db
environment:
- PMA_HOST=db
- PMA_PORT=3306
- PMA_USER=test
- PMA_PASSWORD=test
ports:
- "3333:80"
现在我无法通过 phpmyadmin 访问我的 mariadb-database:
遵循 docker hub 上的 mariadb-README ,环境配置应与mysql5-container相同。我假设我还需要启用 mysql_native_password
,这对于 mysql8-container 不起作用。
我想念什么?这是一个错误还是我错过了什么?
最佳答案
它适用于带有 --default-authentication-plugin=mysql_native_password
的 mariadb
,只是容器启动非常慢。
[编辑]这是一个 MWE,它适用于不同的 mysql 版本(5 和 8)以及最新的 mariadb(10):
关于mysql - docker-compose:mariadb - 连接被拒绝,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58577255/