ホームページ >バックエンド開発 >Golang >Docker で MySQL サーバーに接続するときに発生する「dial tcp 127.0.0.1:3306: connect: connection拒否」エラーを解決するにはどうすればよいですか?

Docker で MySQL サーバーに接続するときに発生する「dial tcp 127.0.0.1:3306: connect: connection拒否」エラーを解決するにはどうすればよいですか?

DDD
DDDオリジナル
2024-10-28 15:59:01444ブラウズ

How to Resolve

Docker 経由で MySQL サーバーへの未解決のダイヤル TCP 問題

Docker で実行されている MySQL サーバーへの接続を確立できませんか?あなたは一人ではありません。この一般的な問題を詳しく調べて、考えられる解決策を探ってみましょう。

問題:

「dial tcp 127.0.0.1:3306: connect: connection requested」というメッセージが表示されます。 Go を使用して Docker コンテナ内から MySQL データベースに接続しようとするとエラーが発生します。 MySQL サーバーは localhost:3306 で機能していますが、Go アプリケーションからの接続が失敗します。

解決策:

問題の核心は Docker の分離にあります。デフォルトでは、Docker コンテナはホスト システムから隔離されたネットワーク環境で実行されます。この分離により、ローカルホストで実行されている MySQL サーバーなど、ホスト マシンが提供するサービスにコンテナが直接アクセスできなくなります。

この制限を回避するには、接続文字列を変更して、特別なホスト名 docker.for.mac.localhost。変更された接続文字列は次のようになります。

db, err = sql.Open("mysql", dbUser+":"+dbPassword+"@tcp(docker.for.mac.localhost:3306)/"+dbName)

ホスト名を docker.for.mac.localhost に修正すると、Docker コンテナはネットワーク ブリッジを介してホスト マシン上で実行されている MySQL サーバーとの接続を確立できます。 .

追加メモ:

さらなるガイダンスとトラブルシューティングのヒントについては、ネットワークに関する Docker ドキュメントを参照してください。この回避策では、特定の設定に応じて追加のネットワーク構成が必要になる場合があることに注意してください。

以上がDocker で MySQL サーバーに接続するときに発生する「dial tcp 127.0.0.1:3306: connect: connection拒否」エラーを解決するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。