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