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

Docker for Windows环境下Node Red连接MySQL与MongoDB失败问题问询

问题根因定位
  1. MongoDB连接失败:报错提示找不到mongodb主机,Docker的link别名在Linux容器内是大小写敏感的,你启动Node-Red时用--link mongoDB注入的主机名是首字母大写的mongoDB,但导入的旧流配置里MongoDB节点填写的主机名是全小写mongodb,匹配不上导致域名解析失败。
  2. MySQL连接失败:你配置里MySQL节点填写的地址是127.0.0.1:3306,但容器内的127.0.0.1指向的是Node-Red容器本身,不是宿主机也不是独立的MySQL容器,所以会返回连接拒绝错误。
可执行解决方案
  • 方案1:直接修改Node-Red流配置(最快捷,无需重启容器)
    • 所有MongoDB节点的连接配置中,把主机名从mongodb改为mongoDB,也可以直接填写MongoDB容器的固定IP 172.17.0.3
    • 所有MySQL节点的连接配置中,把主机地址从127.0.0.1改为MySql,也可以直接填写MySQL容器的固定IP 172.17.0.2
    • 保存配置后重新部署流即可生效。
  • 方案2:调整容器启动参数,兼容旧配置(无需修改原有流配置)
    • 删掉现有Node-Red容器,重新执行启动命令,新增别名配置完全适配旧流的主机名规则:
      docker run -d -p 1880:1880 -v C:\Docker_Data/Node-Red:/data --network="bridge" --add-host localhost:127.0.0.1 --name NR-Latest-14 --restart unless-stopped --link mongoDB:mongodb --link MySql:mysql nodered/node-red:latest-14
      
    • 其中--link mongoDB:mongodb是将mongoDB容器的别名设置为小写的mongodb,--link MySql:mysql同理,和你原NAS环境的hosts别名完全一致,旧流不需要任何修改就能正常运行。
  • 补充验证步骤:配置调整后可进入Node-Red容器直接验证连通性
    • 进入容器命令:docker exec -it NR-Latest-14 /bin/bash
    • 验证MongoDB连通:ping mongodb 或 curl mongoDB:27017
    • 验证MySQL连通:apt update && apt install telnet -y && telnet MySql 3306

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 21:36:08