【问题标题】:Node Red MySQL can not connect to docker MySQL server working locallyNode Red MySQL 无法连接到本地工作的 docker MySQL 服务器
【发布时间】:2018-12-12 22:08:27
【问题描述】:

我已经启动了一个容器,他似乎在工作:

我可以通过以下方式登录 mysql 数据库

docker exec -it mysqlsys bash

凭据在那里工作正常。

所以,下一步,我要去node-red,并使用“node-red-contrib-mysql”。但是当我设置数据连接到数据库时,我可以看到“连接丢失”,我根本无法工作。

有人可以帮忙吗? 谢谢。

附:

【问题讨论】:

    标签: mysql node.js database docker node-red


    【解决方案1】:

    主机 IP 地址 127.0.0.1 不正确。您需要使用您的实际机器 IP 地址。 或者如果 Docker 在同一台机器上运行,则使用 localhost。

    它应该工作!告诉我。

    【讨论】:

    • 感谢您的反馈,但我尝试了“localhost”、“%”、“0.0.0.0”。但这对我不起作用。
    • 您的 docker 是否在单独的机器上运行?尝试使用实际的主机 IP 地址。
    • 不,docker 和 node-red 在同一台机器上工作。
    • 用实际的主机IP地址试试?
    • 我已经从(检查命令)定义了 IPAddress "172.17.0.2",但是当我把这个地址放到 node-red 上时,我收到了新的错误:7/4/2018, 3:44 :12 PMnode: db msg: string[22] "Database not connected" 7/4/2018, 3:44:19 PMnode: ff1769eb.e02ee8 msg: error "Error: connect ECONNREFUSED 172.17.0.2:3306"
    【解决方案2】:

    您可以使用容器的 IP 或创建 docker-compose.yml 文件来创建服务。对于第一个选项,在终端上查找IP写入

    docker inspect mysqlsys
    

    并找到IPAddress 键。

    如果您选择第二个选项,您可以将服务名称用作主机。

    【讨论】:

    • 谢谢,首先:我已经定义了 IPAddress "172.17.0.2",但是当我把这个地址放到 node-red 上时,我收到了新的错误:7/4/2018, 3: 44:12 PMnode: db msg: string[22] "Database not connected" 7/4/2018, 3:44:19 PMnode: ff1769eb.e02ee8 msg: error "Error: connect ECONNREFUSED 172.17.0.2:3306"
    • 你看到容器日志了吗?可能entrypoint.sh 文件中发生了一些事情
    • 看起来一切正常。 “MySQL 初始化过程完成。准备启动。180704 13:34:47 [警告] 不推荐使用唯一选项前缀 key_buffer 而不是 key_buffer_size,并将在未来版本中删除。请改用全名。180704 13:34 :47 [注意] mysqld (mysqld 5.5.60-0+deb8u1) 从进程 1 开始 ..."
    • 嗯,是的,它开始时没有错误。我的下一个想法是您忘记从 Dockerfile 中公开端口,或者您没有在 docker run 上定义端口
    • 我在使用 -p '3306:3306' 运行 docker 容器时这样做了
    猜你喜欢
    • 1970-01-01
    • 2019-07-03
    • 2016-11-11
    • 2019-10-08
    • 2018-08-07
    • 1970-01-01
    • 2020-11-14
    • 2017-10-07
    • 1970-01-01
    相关资源
    最近更新 更多