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

同一Docker自定义网络下服务端容器无法连接MySQL容器问题求助

核心问题

同Docker网络内的容器互相访问时,应使用目标容器内部监听的端口,而非宿主机映射端口。你配置的3307是宿主机侧的映射端口,MySQL容器内部实际监听的是3306端口,因此连接被拒绝。

修复步骤

  1. 修改TypeORM数据库连接配置,将端口参数从3307改为3306:
await createConnection({
    type: "mysql",
    host: "larecipe-database",
    port: 3306, // 替换为容器内部MySQL监听端口
    username: MYSQL_USER,
    password: MYSQL_PASSWORD,
    database: MYSQL_DATABASE,
    // 其余配置保持不变
})
  1. 重新构建服务端镜像并重启服务端容器,即可正常连接数据库。

其他异常排查方案

如果修改端口后仍无法连接,可按以下顺序排查:

  • 确认MySQL容器启动状态:执行docker ps查看larecipe-database是否处于运行中状态,若启动失败,执行docker logs larecipe-database查看数据库启动日志排查问题,官方MySQL镜像首次启动需要执行初始化操作,通常耗时10~30秒,若服务端容器早于数据库完全启动,也会出现连接失败的问题,可以先启动数据库,确认运行正常后再启动服务端。
  • 宿主机侧用MySQL Workbench连接时,host填127.0.0.1、端口填3307即可,若仍无法连接,优先排查数据库容器本身的启动问题。
  • 可以进入服务端容器手动测试网络连通性:执行docker exec -it larecipe-server bash进入容器,安装telnet工具后执行telnet larecipe-database 3306,确认网络链路正常。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 14:54:05