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 サイトの他の関連記事を参照してください。