docker-compose:mariadb-连接被拒绝

时间:2019-10-27 07:08:47

标签: 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访问{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数据库

enter image description here

docker hub上执行mariadb-README之后,环境配置应与mysql5-container相同。我认为,我还需要启用mysql_native_password,它不能像mysql8-container一样工作。

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

4 个答案:

答案 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