Пароль mariaDB устанавливается только через определенное время при запуске контейнера mariadb - PullRequest
0 голосов
/ 14 января 2020

Если я запускаю контейнер docker mariadb, пароль, переданный MYSQL_ROOT_PASSWORD, устанавливается только через некоторое время. Версия контейнера mariadb - 10.4., docker - 19.03.5. Моя ОС - Linux Mint 19.3 ..

Для тестирования я удалил все docker компоненты, как описано здесь .

Я сделал fre sh переустановку docker, как описано здесь и сделал linux -postinstall, как описано здесь .

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

docker run --name mariadb \
       -e MYSQL_ROOT_PASSWORD=myPass \
       -d mariadb:10.4

После этого docker exec mariadb bash -c 'echo "$MYSQL_ROOT_PASSWORD"' дает: myPass. Я могу подключиться к mysql в работающем контейнере с помощью: docker exec -it mariadb mysql. Доступ с docker exec -it mariadb mysql -u root -pmyPass запрещен.

После ожидания в течение примерно 5 минут вход в систему невозможен без пароля. Теперь пароль установлен правильно, и я могу войти только с docker exec -it mariadb mysql -u root -pmyPass.

. Я мог воспроизвести это несколько раз. Если вы посмотрите log , вы увидите разрыв между 11:28 и 11:34. Я предполагаю, что до этой записи: 2020-01-13 11:34:09 0 [Note] InnoDB: Buffer pool(s) load completed at 200113 11:34:09, можно получить доступ без ввода пароля. После этого требуется пароль.

Если я использую обычный контейнер MySQL вместо MariaDB, установка пароля работает как положено. Я запускаю контейнер docker mysql с:

docker run --name myC \
       -e MYSQL_ROOT_PASSWORD=myPass \
       -d mysql:8.0.18

Пароль устанавливается немедленно. Поэтому, как только контейнер работает, доступ возможен только с docker exec -it myC mysql -u root -pmyPass, что является ожидаемым поведением.

Я запускаю контейнеры напрямую с docker run ... с консоли bash, я не использую docker -составить или другие средства автоматизации.

Кто-нибудь может объяснить, почему это происходит или есть решение, позволяющее избежать этого промежутка времени?

Спасибо!

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