【问题标题】:docker-compose: mariadb - Connection refuseddocker-compose:mariadb - 连接被拒绝
【发布时间】:2020-02-22 21:53:28
【问题描述】:

步骤一)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-databasehttp://localhost:3333/

第二步)mysql8 & phpmyadmin

现在我切换到 mysql8,我只使用图像和卷,并添加了 command-option 和 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-databasehttp://localhost:3333/

第三步)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

按照docker hub 上的mariadb-README,环境配置应与mysql5-container 相同。我假设,我还需要启用mysql_native_password,它不适用于 mysql8-container。

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

【问题讨论】:

    标签: mysql docker phpmyadmin docker-compose mariadb


    【解决方案1】:

    你应该在 /etc/mysql/my.conf 中启用 bind-ip。 取消注释 bind-ip 0.0.0.0

    【讨论】:

      【解决方案2】:

      它适用于mariadb--default-authentication-plugin=mysql_native_password,只是容器启动很慢。

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

      【讨论】:

        【解决方案3】:

        MariaDB 没有default-authentication-plugin 选项。可能是这个原因

        【讨论】:

          【解决方案4】:

          您的 docker-compose 文件有效。我启动 MySQL 容器而不是切换到 MariaDB 图像,它工作正常。我认为您应该查看 docker 日志。答案就在那里

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2017-07-10
            • 2018-07-03
            • 2016-02-14
            • 2018-07-14
            • 1970-01-01
            • 1970-01-01
            • 2021-06-27
            • 2020-01-19
            相关资源
            最近更新 更多