mysql - docker-compose:mariadb - 连接被拒绝

标签 mysql docker phpmyadmin docker-compose mariadb

步骤 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 访问我的 ma​​riadb-database:

enter image description here

遵循 docker hub 上的 mariadb-README ,环境配置应与mysql5-container相同。我假设我还需要启用 mysql_native_password,这对于 mysql8-container 不起作用。

我想念什么?这是一个错误还是我错过了什么?

最佳答案

它适用于带有 --default-authentication-plugin=mysql_native_passwordmariadb,只是容器启动非常慢。

[编辑]这是一个 MWE,它适用于不同的 mysql 版本(5 和 8)以及最新的 mariadb(10):

关于mysql - docker-compose:mariadb - 连接被拒绝,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58577255/

相关文章:

Docker 窗口给出消息-超时已过期且操作尚未完成

尝试将存储过程结果插入表时 PHPmyadmin 出错

mysql - 在 iptables 中屏蔽一个 ip

javascript - parseInt 正在为总值的 CSS 属性返回 NaN

php - 使用 CASE 尝试更新两个表之间的字段时出现 MySQL 错误 1064

testing - 在 jenkins 项目上构建许多 dockerfile

postgresql - 扩展另一个图像标签时 Postgres docker 容器初始化脚本不运行

mysql - 如何在 phpMyAdmin 中获取分区表

MySql phpMyAdmin : Replicating/Synchronizng two Database automatically

android - 如何在 Android 应用程序中验证用于注册的电子邮件地址