Node.js 连接到 MySQL Docker 容器 ECONNREFUSED
尝试使用 Node.js 连接到 MySQL Docker 容器时,出现 ECONNREFUSED 错误(例如,ECONNREFUSED 127.0.0.1:3307)可能会发生。此错误表明 Node.js 无法与 MySQL 容器建立连接。
Docker Compose 配置
如提供的 docker-compose.yml 文件中所示,有必要了解端口映射配置(例如 3307:3306)仅指定 Docker 如何将主机端口映射到容器端口。容器本身仍然侦听其默认端口(例如,MySQL 为 3306)。
Node.js 连接配置
要解决 ECONNREFUSED 错误,请确保 Node .js 应用程序配置为连接到 MySQL 容器的内部端口。在提供的示例中,主机属性应设置为“mysql”,端口属性应设置为“3306”。
const config = { host: 'mysql', database: 'mydb', port: '3306', user: 'mysql', password: '1234', connectionLimit: 10 };
Docker Compose 中的命令
此外,应更新 docker-compose.yml 文件中的命令属性,以在端口 3306 而不是 3307 上等待 MySQL。
command: ["./wait-for-it.sh", "mysql:3306"]
注意: 建议使用wait-for-it.sh 脚本,以确保在尝试从 Node.js 连接之前完全初始化 MySQL 容器。该脚本可以从 https://github.com/vishnubob/wait-for-it 获取。
按照以下步骤,应该可以在 Node.js 应用程序和 MySQL 之间建立连接Docker 容器。
以上是从 Node.js 连接到 MySQL Docker 容器时,为什么会收到 ECONNREFUSED 错误?的详细内容。更多信息请关注PHP中文网其他相关文章!