Хосту 'X' не разрешено подключаться к этому серверу MySQL - PullRequest
0 голосов
/ 04 января 2019

Я хочу развернуть MySQL + PHPMyAdmin.Мой docker-compose.yml:

version: "3"
services:
  db:
    image: mysql:5.7
    restart: always
    container_name: db
    volumes:
      - ./~mysql:/var/lib/mysql
      - ./mysql.cnf:/etc/mysql/conf.d/my.cnf
    environment:
      MYSQL_DATABASE: "dbtest"
      MYSQL_ROOT_PASSWORD: "123456"
      MYSQL_ROOT_HOST: "%"
    networks:
      - db
    command: --default-authentication-plugin=mysql_native_password
    healthcheck:
      test: "mysqladmin ping -h localhost"
      interval: 1s
      timeout: 1s
      retries: 60

  phpmyadmin:
    image: phpmyadmin/phpmyadmin:4.7
    restart: always
    container_name: phpmyadmin
    ports:
      - 8080:80
    networks:
      - external-net
      - db
    environment:
      PMA_HOST: db
    depends_on:
      - db

networks:
  external-net:
    external:
      name: external-net
  db:
    driver: bridge

Через некоторое время я получаю предметную ошибку.MYSQL_ROOT_HOST не помогло.Когда я пытаюсь подключиться к mysql из db-контейнера:

ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)

Я действительно не знаю, что делать с этой магией ... Спасибо.

1 Ответ

0 голосов
/ 07 февраля 2019

Я пересоздал вашу настройку и просто добавил некоторую конфигурацию ENV, чтобы сделать трюк, я удалил раздел томов, потому что с ним не было проблем:

docker-compose.yml

version: "3"
services:
  db:
    image: mysql:5.7
    restart: always
    container_name: db
    environment:
      - MYSQL_ROOT_PASSWORD=rootpasswd
      - MYSQL_DATABASE=phpmyadmin
      - MYSQL_USER=user
      - MYSQL_PASSWORD=userpasswd
    networks:
      - db
    command: --default-authentication-plugin=mysql_native_password
    healthcheck:
      test: "mysqladmin ping -h localhost"
      interval: 1s
      timeout: 1s
      retries: 60

  phpmyadmin:
    image: phpmyadmin/phpmyadmin:4.7
    restart: always
    container_name: phpmyadmin
    ports:
      - 8080:80
    networks:
      - external-net
      - db
    environment:
      PMA_HOST: db
    depends_on:
      - db

networks:
  external-net:
    external:
      name: external-net
  db:
    driver: bridge

Доступ к PHPMyadmin через root: rootpasswd работает нормально.

...