Невозможно создать базы данных с использованием конфигурации MySQL внутри докера - PullRequest
0 голосов
/ 09 ноября 2019

Я установил Ubuntu, используя виртуальный ящик, а также установил в него apt, docker и docker-compose. Теперь я хочу создать базу данных MySQL, используя docker-compose.yml, в которой я определил конфигурацию MySQL, включая импортированный файл базы данных. Когда я выполняю следующую команду, он устанавливает MySQL, но не создает базу данных.

sudo docker-compose up -d --force-recreate --build

docker-compose.yml

mysql:
    image: "mysql:5.7"
    network_mode: "bridge"
    volumes:
      - ${DATA_ROOT}/mysql:/var/lib/mysql
      - ./docker-entrypoint-initdb.d:/docker-entrypoint-initdb.d
    environment:
      - MYSQL_ROOT_PASSWORD=${ENV_PASSWORD}
      - MYSQL_USER="${ENV_USER}"
      - MYSQL_PASSWORD="${ENV_PASSWORD}"
      - MYSQL_PORT_3306_TCP_ADDR=0.0.0.0
      - MYSQL_PORT_3306_TCP_PORT=3306
    command:
      - --user=root
      - --max_allowed_packet=500M
      - --character-set-server=utf8mb4
      - --collation-server=utf8mb4_unicode_ci
      - --max_connections=250
      - --default-authentication-plugin=mysql_native_password
    ports:
      - "3306:3306"

Также в некоторых случаях это позволяет мне создавать первый раз, но когда яудалите все изображение и том в Docker и попробуйте заново создать его, после чего возникла та же проблема.

Я предполагаю, что есть какой-то предустановленный файл, который ограничивает меня для его воссоздания (это только мое предположение)

1 Ответ

0 голосов
/ 09 ноября 2019

Вам необходимо удалить каталог данных - ${DATA_ROOT}/mysql:/var/lib/mysql, если вы хотите инициализировать базу данных с /docker-entrypoint-initdb.d, как четко указано в официальной документации

Использование для существующей базы данных

Если вы запускаете экземпляр контейнера mysql с каталогом данных, который уже содержит базу данных (в частности, подкаталог mysql), переменная $ MYSQL_ROOT_PASSWORD должна быть исключена из командной строки run;в любом случае оно будет проигнорировано, и ранее существующая база данных не будет изменена никаким образом.

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