gpt4 book ai didi

mysql - 获取 SequelizeConnectionRefusedError : when running docker with sequelize

转载 作者:行者123 更新时间:2023-11-29 19:20:42 24 4
gpt4 key购买 nike

我正在使用以下配置运行 docker

web:
image: ca9a385372b0
volumes:
- .:/src
ports:
- "8000:8000"
container_name: web
links:
- mysql
mysql:
image: 7666f75adb6b
environment:
container_name: mysql
ports:
- "6603:3306"
volumes:
- ./data/mysql:/var/lib/mysql

启动容器后,我可以通过主终端很好地连接到端口 6603 上的 mysql。

mysql -uuser -p -h127.0.0.1 -P6603

但是在通过我的 Nodejs 应用程序容器执行操作时出现以下错误。我已经链接了容器。我可以看到它尝试使用内部 IP 等连接到 mysql 容器。

Unhandled rejection SequelizeConnectionRefusedError: connect ECONNREFUSED 172.17.0.3:6603

我还检查了 mysql 容器的权限并看到了这个:

 GRANT ALL PRIVILEGES ON *.* TO 'user'@'%' WITH GRANT OPTION

我有什么遗漏吗?

最佳答案

mysql 容器正在公开端口 3306(如端口映射所示,它将外部端口 6603 连接到公开的容器端口 3306)。

ports:
- "6603:3306"

我们知道这是正确的,因为您可以从外部使用它并连接到 mysql。

mysql -uuser -p -h127.0.0.1 -P6603

您的 Node 应用程序正在尝试连接到外部端口 6603(正如我们从错误消息中看到的那样)。

Unhandled rejection SequelizeConnectionRefusedError: connect ECONNREFUSED 172.17.0.3:6603

但是 Node 是在 docker 网络内部运行的,而不是外部。它无法访问外部映射的端口。

解决方案:告诉 Node 应用使用端口 3306。

关于mysql - 获取 SequelizeConnectionRefusedError : when running docker with sequelize,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42469914/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com