第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访问{strong> mysql数据库:http://localhost:3333/
第2步)mysql8和phpmyadmin
现在,我切换到mysql8,在这里我仅使用映像和卷,并使用command
-plugin添加了mysql_native_password
-选项:
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访问{strong> mysql数据库: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数据库:
在docker hub上执行mariadb-README之后,环境配置应与mysql5-container相同。我认为,我还需要启用mysql_native_password
,它不能像mysql8-container一样工作。
我想念什么?这是错误还是我错过了什么?
答案 0 :(得分:0)
它与mariadb
一起用于--default-authentication-plugin=mysql_native_password
,只是容器启动非常慢。
[编辑]这是一个MWE,可与不同的mysql版本(5和8)和最新的mariadb(10)一起使用:
答案 1 :(得分:0)
您的docker-compose文件有效。我启动 MySQL 容器,而不是切换到 MariaDB 映像,它工作正常。我认为您应该查看docker日志。答案在那里
答案 2 :(得分:0)
MariaDB没有default-authentication-plugin
选项。那可能是原因
答案 3 :(得分:-1)
您应该在/etc/mysql/my.conf中启用bind-ip。 取消注释bind-ip 0.0.0.0