docker-compose: mariadb - соединение отклонено - PullRequest
0 голосов
/ 27 октября 2019

Шаг 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"

Я могу получить доступ к моей базе данных mysql через phpmyadmin: http://localhost:3333/

Шаг 2) mysql8 & phpmyadmin

Теперь я переключаюсь на mysql8, где у меня есть только изображение и громкость, и добавил command-пция с плагином 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"

Я могу получить доступ к моей базе данных mysql через phpmyadmin: 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"

Теперь я не могу получить доступ к своему mariadb-база данных через phpmyadmin:

enter image description here

После mariadb-README на докер-хаб конфигурация среды должна быть такой жечто касается mysql5-контейнера. Я предполагаю, что мне также нужно включить mysql_native_password, который не работает как для контейнера mysql8.

Что мне не хватает? Это ошибка или я что-то пропустил?

Ответы [ 3 ]

0 голосов
/ 27 октября 2019

Ваш файл docker-compose работает. Я запускаю MySQL контейнер, а затем переключаюсь на MariaDB образ, и он работает нормально. Я думаю, вы должны заглянуть в журналы докера. Ответ есть

0 голосов
/ 30 октября 2019

MariaDB не имеет опции default-authentication-plugin. Это может быть причиной

0 голосов
/ 27 октября 2019

Это работает для mariadb с --default-authentication-plugin=mysql_native_password, просто запуск контейнера очень медленный.

[Edit] Вот MWE, который работает с различными версиями mysql (5 и 8) иновейшая мариадба (10):

...