ホームページ > データベース > mysql チュートリアル > Node.js アプリケーションから MySQL コンテナに接続すると ECONNREFused が発生するのはなぜですか?

Node.js アプリケーションから MySQL コンテナに接続すると ECONNREFused が発生するのはなぜですか?

Barbara Streisand
リリース: 2024-11-12 01:43:02
オリジナル
883 人が閲覧しました

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

MySQL Docker コンテナへの接続中に Node.js ECONNREFused が発生します

MySQL コンテナと Node.js Web サービスを含む Docker Compose セットアップ内、Docker リンクが確立され、データベース設定が適切に構成されているにもかかわらず、Node.js から MySQL に接続すると ECONNREFUSED エラーが発生しました。

問題の説明

問題の原因は次のとおりです。 Dockerポートマッピングの誤解。 Docker 構成ファイル内:

これにより、ホスト ポート 3307 がコンテナ ポート 3306 にマップされます。これにより、ホストから MySQL コンテナのデータベースへの外部アクセスが許可されますが、コンテナの内部ポートは変更されません。

解決策

問題を解決するために、Node.js 構成と Docker コマンドが調整されました:

Node.js構成

Docker コマンド

説明

Docker サービス名 ( mysql) を Node.js 構成のホストとして使用すると、ホストではなくコンテナーに対して接続が試行されるようになります。さらに、wait-for-it スクリプト引数を 3306 に変更することで、コンテナ内のネイティブ ポートで MySQL の準備が整うまで待機します。

これらの変更が実装されると、ECONNREFUSED エラーは解決され、 Node.js アプリケーションは MySQL Docker コンテナに正常に接続できました。

以上がNode.js アプリケーションから MySQL コンテナに接続すると ECONNREFused が発生するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート