MySQL Docker容器启动时收到SHUTDOWN命令的原因排查问询
定位MySQL Docker容器启动时SHUTDOWN命令的触发原因
先明确:你看到的SHUTDOWN命令是MySQL官方Docker镜像的正常初始化流程,并非异常行为,以下是具体分析:
1. 官方镜像的初始化逻辑拆解
MySQL官方镜像的entrypoint脚本会按固定流程完成初始化:
- 首先初始化数据库基础文件(对应日志里的
Initializing database files阶段) - 启动一个临时MySQL服务器(端口为0,不对外提供服务),用来执行初始化操作:比如设置root密码、运行自定义初始化脚本(如果挂载了的话)
- 初始化完成后,entrypoint脚本会主动以root用户身份发送SHUTDOWN命令,停止这个临时服务器(对应日志里的
[Entrypoint]: Stopping temporary server) - 最后启动正式的MySQL服务器(端口3306,对外提供服务)
2. 验证正常流程的关键日志
你的日志里有明确的关联证据:
2022-07-25 19:33:24+00:00 [Note] [Entrypoint]: Stopping temporary server 2022-07-25T19:33:24.911894Z 10 [System] [MY-013172] [Server] Received SHUTDOWN from user root. Shutting down mysqld (Version: 8.0.29).
SHUTDOWN命令日志紧跟在entrypoint脚本的停止临时服务器日志之后,说明这是脚本主动触发的操作。
3. 需要排查异常的场景
只有出现以下情况时,才需要进一步定位问题:
- 临时服务器关闭后,正式服务器无法启动
- SHUTDOWN命令日志没有对应的
[Entrypoint]: Stopping temporary server前置日志 - 容器反复重启,无法稳定运行
总结
你遇到的情况是官方镜像初始化的标准流程,属于正常行为,无需额外排查。若后续容器运行出现异常,再针对具体问题分析。
内容的提问来源于stack exchange,提问作者Oleg Sukhov
相关产品推荐
相关产品推荐

