You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Docker环境下SpringBoot+MySQL+Flyway启动失败求助

问题排查与解决方案

1. 数据库账号密码完全不匹配

你的MySQL启动命令中设置的根用户是sa、密码是1234,但application.yml里配置的数据库账号是root、密码是rootpass,这是核心错误,直接导致连接失败。

修改application.yml的数据源配置,和MySQL容器的环境变量保持一致:

spring:
  datasource:
    url: jdbc:mysql://mysqldb:3306/mydb?useSSL=false&allowPublicKeyRetrieval=true&serverTimezone=UTC
    driverClassName: com.mysql.cj.jdbc.Driver
    username: sa
    password: 1234

额外添加allowPublicKeyRetrieval=true解决MySQL 8.0+驱动的公钥检索限制,serverTimezone=UTC避免时区不兼容报错。

2. MySQL未就绪时SpringBoot提前启动

MySQL容器启动后需要1-2分钟完成数据库初始化,SpringBoot启动过快会触发连接拒绝。解决方式:

  • 手动等待:启动MySQL容器后,等待1-2分钟再启动SpringBoot容器
  • 用Docker Compose做健康检查(推荐):
    编写docker-compose.yml,让SpringBoot仅在MySQL完全就绪后启动:
    version: '3.8'
    services:
      mysqldb:
        image: mysql:latest
        container_name: mysqldb
        networks:
          - my-net
        environment:
          MYSQL_ROOT_USER: sa
          MYSQL_ROOT_PASSWORD: 1234
          MYSQL_DATABASE: mydb
        healthcheck:
          test: ["CMD", "mysqladmin", "ping", "-h", "localhost", "-u", "sa", "-p1234"]
          interval: 5s
          timeout: 5s
          retries: 5
      manager-app:
        image: manager-app
        container_name: manager-app
        networks:
          - my-net
        ports:
          - "8080:8080"
        depends_on:
          mysqldb:
            condition: service_healthy
    
    执行docker-compose up -d即可自动处理启动顺序。

3. 验证网络连通性

先确认自定义网络my-net存在:

docker network ls

如果不存在,先创建网络:

docker network create my-net

再进入SpringBoot容器测试能否连通MySQL:

docker exec -it manager-app ping mysqldb

如果ping不通,检查两个容器是否确实加入了my-net网络:

docker inspect mysqldb | grep Networks
docker inspect manager-app | grep Networks

4. 检查MySQL服务状态

如果以上步骤都没问题,查看MySQL容器日志,确认服务是否正常启动:

docker logs mysqldb

若日志显示启动失败,可尝试更换和驱动版本匹配的MySQL镜像(比如mysql:8.0.31,和你的mysql-connector-java版本一致),避免版本兼容性问题。


内容的提问来源于stack exchange,提问作者continuousLearner

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.08 00:10:46