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

使用Docker Compose部署Spring Boot+MySQL应用时出现Liquibase连接错误

Liquibase连接MySQL被拒绝的排查步骤

1. 检查Docker Compose网络连通性

  • 进入Spring Boot应用容器,执行 ping mysql(假设docker-compose中MySQL服务名为mysql),验证服务名是否能解析到对应容器IP
  • 在Spring Boot容器内执行 telnet <mysql容器IP> 3306(IP可通过docker inspect <mysql容器ID>获取),确认3306端口是否开放
  • 确认两个服务处于同一自定义网络下:docker-compose默认bridge网络可能存在解析延迟,建议显式定义网络并将两个服务加入其中

2. 验证MySQL服务是否完全就绪

  • 查看MySQL容器日志:docker logs <mysql容器ID>,确认日志中出现 ready for connections 字样,避免Spring Boot启动时MySQL未完成初始化
  • 进入MySQL容器,执行 mysql -u<配置的用户名> -p<配置的密码>,手动验证数据库登录是否正常,同时确认目标业务数据库已创建
  • 检查MySQL连接限制:确认docker-compose中是否通过command参数设置了 --bind-address=0.0.0.0,避免仅允许本地连接

3. 核对Spring Boot配置正确性

  • 检查application.yml中的数据库URL:必须使用Docker Compose的MySQL服务名作为主机地址(例如 jdbc:mysql://mysql:3306/your_db),禁止使用localhost或宿主机IP
  • 确认数据库用户名、密码与docker-compose中MySQL服务的MYSQL_USER、MYSQL_PASSWORD完全匹配
  • 补充MySQL 8.0必需的连接参数:URL中添加 useSSL=false&allowPublicKeyRetrieval=true,避免因SSL或公钥检索问题触发连接异常

4. 检查Liquibase配置细节

  • 确认Liquibase配置(application.yml的liquibase节点或独立配置文件)中的url、username、password与Spring Boot主数据库配置完全一致
  • 验证Liquibase变更文件路径配置正确:避免因找不到变更文件导致的异常被包装为连接拒绝错误
  • 确认Spring Boot 3.x项目已引入正确依赖:spring-boot-starter-liquibase,避免自动配置失效

5. 排查容器启动顺序问题

  • 在docker-compose.yml中为Spring Boot服务添加健康检查依赖,确保MySQL完全就绪后再启动应用:
    services:
      mysql:
        image: mysql:8.0.27
        healthcheck:
          test: ["CMD", "mysqladmin", "ping", "-h", "localhost", "-u", "root", "-p${MYSQL_ROOT_PASSWORD}"]
          interval: 5s
          timeout: 5s
          retries: 5
      app:
        build: .
        depends_on:
          mysql:
            condition: service_healthy
    
  • 手动分步启动:先启动MySQL容器,等待1-2分钟确认服务就绪后再启动Spring Boot容器,验证是否为启动顺序导致的问题

6. 检查宿主机端口冲突

  • 执行 netstat -tulpn | grep 3306(Linux)或 netstat -ano | findstr :3306(Windows),确认宿主机3306端口未被其他进程占用
  • 若docker-compose中MySQL服务映射了宿主机端口,可暂时去掉端口映射,仅使用容器内部网络连接测试

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.19 14:47:01