ホームページ  >  記事  >  バックエンド開発  >  「接続が拒否されました」が発生した場合に、Docker の Go アプリケーションから MySQL サーバーに接続する方法

「接続が拒否されました」が発生した場合に、Docker の Go アプリケーションから MySQL サーバーに接続する方法

Linda Hamilton
Linda Hamiltonオリジナル
2024-10-30 05:33:28559ブラウズ

How to Connect to a MySQL Server from a Go Application in Docker When Encountering

エラー: Docker の Go から MySQL サーバーに接続するときに接続が拒否されました

Docker 内で実行されている Go アプリケーションから MySQL サーバーに接続しようとすると、開発者は次のような問題に遭遇する可能性があります。次のエラー:

dial tcp 127.0.0.1:3306: connect: connection refused

原因:

デフォルトでは、Docker コンテナは隔離されたネットワーク スペースで実行されるため、内部で実行されているアプリケーションがホストに直接アクセスすることはできません。マシンの localhost.

解決策:

この問題を解決するには、 の代わりに特別なホスト名 docker.for.mac.localhost を使用します。ローカルホスト。このアドレスにより、Docker ネットワーキングを使用してホスト マシンのサービスとの通信が可能になります:

  1. Go コード内の接続文字列を更新します:
<code class="go">db, err = sql.Open("mysql", dbUser+":"+dbPassword+"@tcp(docker.for.mac.localhost:3306)/"+dbName)</code>
  1. を使用している場合Docker Compose では、データベース コンテナーのサービス定義の下にある docker-compose.yml ファイルに次の行を追加します:
<code class="yml">ports:
  - "3306:3306"</code>

これにより、ホスト マシンのポート 3306 がマップされます。コンテナのポート 3306 に接続し、Go アプリケーションが正しいポート経由で接続できるようにします。

以上が「接続が拒否されました」が発生した場合に、Docker の Go アプリケーションから MySQL サーバーに接続する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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