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

Node.js から MySQL Docker コンテナに接続すると ECONNREFUSED エラーが発生するのはなぜですか?

Susan Sarandon
リリース: 2024-11-11 02:39:02
オリジナル
192 人が閲覧しました

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 コンテナーに接続しようとすると、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 サイトの他の関連記事を参照してください。

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