Доступ запрещен при импорте mysql db в контейнер mysql docker - PullRequest
0 голосов
/ 26 апреля 2020

Я пытаюсь импортировать базу данных в mysql docker контейнер. Я могу попасть в контейнер следующим образом:

docker exec -it server_mysqldb_1 bash

и затем в mysql с помощью этой команды:

mysql -uroot -pmypassword

Однако я пытаюсь импортировать базу данных с помощью этой команды:

docker exec -i server_mysqldb_1 mysql -uroot -pmypassword  license_db < license_db_test.sql

Выдает ошибку «Отказано в доступе»:

mysql: [Warning] Using a password on the command line interface can be insecure.
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)

Сегодня утром все работало нормально. Я временно изменил расположение базы данных в docker -compose.yml., И это явно испортило. Я вернул его к тому, что было, но все равно не повезло.

Вот docker -compose.yml:

version: "3"
services:
  licensing-app:
    image: licensing-app
    ports:
      - "7090:8080"
    networks:
      - license-gen-network
    depends_on:
      - mysqldb
    environment:
      - "SPRING_PROFILES_ACTIVE=prod"
      - "AWS_ACCESS_KEY_ID=xxx"
      - "AWS_SECRET_ACCESS_KEY=xxx"

  mysqldb:
    image: mysql:8
    ports:
      - 3308:3308
    networks:
      - license-gen-network
    volumes:
      - db-data:/var/lib/mysql
    environment:
      MYSQL_ROOT_PASSWORD: mypassword
      MYSQL_DATABASE: license_db

networks:
  license-gen-network:

# Volumes
volumes:
  db-data:

Есть обходной путь, но я все еще хотел бы понять причину root, так как это одна строка в отличие от обходного пути, но вот оно:

1. cp license_db_test.sql server_mysqldb_1:/license_db_test.sql

2. docker exec -it server_mysqldb_1 bash

3. mysql -uroot -p license_db < license_db_test.sql
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...