Docker - пользователь mysql не создан - PullRequest
0 голосов
/ 05 февраля 2019

Я начинающий с Docker, и я смотрю учебник Docker для разработчиков PHP Пола Редмонда.Но когда он создает базу данных MySQL, все работает нормально, но у меня проблема и я не могу определить, где находится.

Я использую Laravel и мне нужно подключиться к базе данных.Но похоже, что контейнер MySQL не создает нового пользователя, и я понятия не имею, почему.

Dockerfile:

FROM php:7.3.1-apache-stretch

COPY . /var/www/html
COPY docker/vhost.conf /etc/apache2/sites-available/000-default.conf

RUN chown -R www-data:www-data /var/www/html \
    && docker-php-ext-install pdo_mysql \
    && a2enmod rewrite

docker-compose.yml:

version: "3"
services:
  app:
    image: laravel-www
    container_name: laravel-www
    build:
      context: .
      dockerfile: docker/Dockerfile
    ports:
      - 8080:80
  mysql:
    container_name: laravel-mysql
    image: mysql:5.7
    environment:
      MYSQL_DATABASE: homestead
      MYSQL_ROOT_PASSWORD: root
      MYSQL_USER: homestead
      MYSQL_SECRET: secret
    ports:
      - 3306:3306

.env в Laravel:

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=homestead
DB_USERNAME=homestead
DB_PASSWORD=secret

После входа в контейнер mysql и в mysql я попытался показать всех пользователей, но нет «домашнего пользователя», который должен быть создан при инициализации контейнера.

docker-compose exec mysql bash
root@8ad8531fb0e0:/# mysql -u root --host=127.0.0.1 -proot
mysql> select User from mysql.user;
+---------------+
| User          |
+---------------+
| root          |
| mysql.session |
| mysql.sys     |
| root          |
+---------------+

Я уже пытался удалить все контейнеры и собрать его заново.Я не делаю ничего фантастического, так что я делаю не так?

1 Ответ

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

Проблема заключается в переменной среды контейнера MySQL.Вы должны использовать MYSQL_PASSWORD вместо MYSQL_SECRET.

Ссылка

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