• 背景说明
  1. 同一台机子(以linux为例)部署以下项目、数据库
  2. docker部署mysql、mongo、postgresql、clickhouse数据库
  3. docker部署spring-boot项目、python、go等项目需要连接数据库
    以spring-boot项目连接mysql为例,通常yml这样配置
jdbc:mysql://127.0.0.1:3306/database_1?useUnicode=true&characterEncoding=utf8&serverTimezone=GMT%2b8
  • 报错原因
    docker部署的项目、数据库是一个一个相互独立的环境。即spring-boot容器连接数据是去该容器内找127.0.0.1的mysql数据库,找不到就报错

  • 解决方案
    使用host.docker.internal替换127.0.0.1,
    示例:

    mysql://host.docker.internal:3306
    mongodb://host.docker.internal:27017
    postgresql://host.docker.internal:5432
    clickhouse://host.docker.internal:8123
    
  • 注意数据库启动时如果创建了网络
    则使用创建的网络ip替换127.0.0.1
    示例:

    # 创建网络 
    docker network create -d bridge --subnet 192.168.0.0/24 --gateway 192.168.0.1 pgnetwork
    # 具体yml使用
    mysql://192.168.0.1:3306
    mongodb://192.168.0.1:27017
    postgresql://192.168.0.1:5432
    clickhouse://192.168.0.1:8123
    
  • docker启动数据库记得加参数,示例
    --network pgnetwork --ip 192.168.0.101

Logo

GitCode 天启AI是一款由 GitCode 团队打造的智能助手,基于先进的LLM(大语言模型)与多智能体 Agent 技术构建,致力于为用户提供高效、智能、多模态的创作与开发支持。它不仅支持自然语言对话,还具备处理文件、生成 PPT、撰写分析报告、开发 Web 应用等多项能力,真正做到“一句话,让 Al帮你完成复杂任务”。

更多推荐