首頁  >  文章  >  資料庫  >  從 Node.js 連接到 MySQL Docker 容器時,為什麼會收到 ECONNREFUSED 錯誤?

從 Node.js 連接到 MySQL Docker 容器時,為什麼會收到 ECONNREFUSED 錯誤?

Susan Sarandon
Susan Sarandon原創
2024-11-11 02:39:02148瀏覽

Why am I getting an ECONNREFUSED error when connecting to my MySQL Docker container from Node.js?

Node.js 連接到MySQL Docker 容器ECONNREFUSED

嘗試使用Node.js 連接到MySQL Docker 容器時,出現ECONNRckerED 錯誤(例如,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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn