mariaDB密码仅在启动mariadb容器后的一定时间后设置

时间:2020-01-14 14:32:23

标签: docker passwords mariadb

如果我启动docker mariadb容器,则仅在一段时间后设置由MYSQL_ROOT_PASSWORD传递的密码。 mariadb容器的版本是10.4。,泊坞窗版本是19.03.5 ..我的操作系统是Linux Mint 19.3。

为了进行测试,我卸载了所有here之类的docker组件。

我像here一样重新安装了docker,并像here一样进行了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。 我可以使用docker exec -it mariadb mysql连接到运行容器中的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-compose或其他自动化工具。

任何人都可以解释为什么会发生这种情况,或者有解决方案来避免这种时间间隔吗?

谢谢!

0 个答案:

没有答案