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中文網其他相關文章!