ホームページ > バックエンド開発 > Golang > Docker の Go アプリが Mac 上の MySQL に接続できないのはなぜですか?

Docker の Go アプリが Mac 上の MySQL に接続できないのはなぜですか?

Patricia Arquette
リリース: 2024-10-29 07:07:02
オリジナル
538 人が閲覧しました

Why Can't My Go App in Docker Connect to MySQL on my Mac?

エラー: "dial tcp 127.0.0.1:3306: connect: connection requested" Docker の Go から MySQL に接続するとき

Go と Docker を使用して Mac 上で実行されている MySQL サーバーに接続しようとすると、「dial tcp 127.0.0.1:3306: connect: connection failed.」というエラー メッセージが表示されます。このエラーは、Navicat for MySQL を使用して localhost:3306 上のデータベースに正常に接続したにもかかわらず発生します。

このエラーは、Mac での Docker の分離の性質が原因で発生します。 Docker は表面下の仮想マシン (VM) で実行されるため、ホスト マシンが提供するサービスに直接アクセスすることが困難になります。

この問題を解決するには、docker.for.mac.localhost を使用するように接続文字列を調整します。 127.0.0.1:3306 ではなく :3306。この特別なホスト名により、Docker コンテナとホスト マシン間の通信が可能になります。

修正された Go コードは次のようになります。

<code class="go">db, err = sql.Open("mysql", dbUser+":"+dbPassword+"@tcp(docker.for.mac.localhost:3306)/"+dbName)</code>
ログイン後にコピー

この修正により、接続の問題が解決され、Docker コンテナとホスト マシン間の通信が可能になります。 Go アプリケーションとホスト マシン上で実行されている MySQL サーバー。

以上がDocker の Go アプリが Mac 上の MySQL に接続できないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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