SQLSTATE [HY000] [1045] Доступ запрещен для пользователя 'root'@'172.19.0.4' с Docker - PullRequest
0 голосов
/ 14 декабря 2018

В настоящее время я учусь использовать Docker в Windows, и я следую этому учебнику .Для настройки Docker я использую Laradock.Я пытаюсь запустить mysql apache2 rabbitmq и phpmyadmin контейнеры. Я сделал все то же, что и в видео, но когда я пытаюсь перенести свои таблицы, я получаю следующую ошибку:

Подсветка\ Database \ QueryException: SQLSTATE [HY000] [1045] Доступ запрещен для пользователя 'root'@'172.19.0.4' (используется пароль: YES)

Я создал пустую базу данных в phpmyadmin.

Все настроено в моих проектах .env и laradock / .env

Мои проекты env:

DB_CONNECTION=mysql
DB_HOST=mysql
DB_PORT=3306
DB_DATABASE=my_database_name
DB_USERNAME=root
DB_PASSWORD=*********

Я дважды проверил свой пароль, и он правильный.

Моя конфигурация laradock / .env:

MYSQL_VERSION=latest
MYSQL_DATABASE=my_database_name
MYSQL_USER=root
MYSQL_PASSWORD=******
MYSQL_PORT=3306
MYSQL_ROOT_PASSWORD=******

Конфигурация Docker-compose.yml:

mysql:
  build:
    context: ./mysql
    args:
      - MYSQL_VERSION=${MYSQL_VERSION}
  environment:
    - MYSQL_DATABASE=${MYSQL_DATABASE}
    - MYSQL_USER=${MYSQL_USER}
    - MYSQL_PASSWORD=${MYSQL_PASSWORD}
    - MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD}
    - TZ=${WORKSPACE_TIMEZONE}
  volumes:
    - ${DATA_PATH_HOST}/mysql:/var/lib/mysql
    - ${MYSQL_ENTRYPOINT_INITDB}:/docker-entrypoint-initdb.d
  ports:
    - "${MYSQL_PORT}:3306"
  networks:
    - backend

Чтобы убедиться, что все мои контейнеры работают, я ввожу эту команду и получаю следующееОтвет:

docker-compose ps

Ответ от предыдущей команды

Пользователь root в моем phpmyadmin:

image

Ответы [ 2 ]

0 голосов
/ 14 декабря 2018

Мне удалось решить эту проблему, изменив мою конфигурацию имени пользователя и пароля .env mysql на:

DB_CONNECTION=mysql
DB_HOST=mysql
DB_PORT=3306
DB_DATABASE=my_database_name
DB_USERNAME=root
DB_PASSWORD=root

И изменив мою версию mysql в конфигурации laradock / .env на:

MYSQL_VERSION=5.7
MYSQL_DATABASE=my_database_name
MYSQL_USER=root
MYSQL_PASSWORD=root
MYSQL_PORT=3306
MYSQL_ROOT_PASSWORD=root
MYSQL_ENTRYPOINT_INITDB=./mysql/docker-entrypoint-initdb.d

После этого я остановил все контейнеры:

docker-compose down

Следующим шагом было создание контейнера MySQL с новой конфигурацией:

docker-compose build --no-cache mysql

После этого я снова запустил все свои контейнеры

docker-compose up -d mysql apache2 rabbitmq phpmyadmin

Переместился в рабочую директорию рабочей области и перенес мои таблицы:

php artisan migrate

И все заработало как положено:

Таблица миграции успешно создана.

Миграция: 2018_11_28_114446_create_accounts_table

Миграция: 2018_11_28_114446_create_accounts_table

0 голосов
/ 14 декабря 2018

Может быть связано с bind-address, принимающим только локальные соединения.Посмотрите этот пример использования custom mysqld.conf в вашем контейнере mysql

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...