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 エラーを解決するには、ノードが.js アプリケーションは、MySQL コンテナの内部ポートに接続するように構成されています。示されている例では、ホスト プロパティは「mysql」に設定され、ポート プロパティは「3306」に設定されている必要があります。
const config = { host: 'mysql', database: 'mydb', port: '3306', user: 'mysql', password: '1234', connectionLimit: 10 };
Docker Compose のコマンド
さらに、docker-compose.yml ファイルのコマンド プロパティは、MySQL をポート 3307 ではなく 3306 で待機するように更新する必要があります。
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 中国語 Web サイトの他の関連記事を参照してください。