为什么我的 Node.js 应用程序在连接到 MySQL Docker 容器时出现 ECONNREFUSED 错误?

Linda Hamilton
发布: 2024-11-11 00:01:03
原创
530 人浏览过

Why Does My Node.js App Get an ECONNREFUSED Error When Connecting to a MySQL Docker Container?

Node.js 与 MySQL Docker 容器的连接 ECONNREFUSED

问题:

尽管有Docker 撰写具有链接的 MySQL 和 Node.js 容器的文件,Node.js 应用程序在尝试使用端口 3307 连接到 MySQL 容器时遇到 ECONNREFUSED 错误。

分析:

Docker compose 文件将主机的 3307 端口映射到容器中的 3306。但是,MySQL 容器正在内部侦听 3306。这导致 Node.js 尝试连接到主机的端口 3307 的问题,该端口不是容器正在侦听的端口。

解决方案:

要解决此问题,请调整 MySQL 配置和 Docker compose 文件,如下所示:

修改的 MySQL 配置:

const config = {
    host: 'mysql',  // Use the MySQL container DNS name
    database: 'mydb',
    port: '3306',  // Match the port the MySQL container is listening on
    user: 'mysql',
    password: '1234',
    connectionLimit: 10
}
登录后复制

修改的 Docker Compose 文件:

command: ["/bin/bash", "./wait-for-it.sh", "mysql:3306"]  // Match the port MySQL is listening on
登录后复制

通过进行这些修改,Node.js 应用程序现在将使用正确的端口连接到 MySQL 容器,并且 ECONNREFUSED 错误应该得到解决。

以上是为什么我的 Node.js 应用程序在连接到 MySQL Docker 容器时出现 ECONNREFUSED 错误?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板