Docker 内で実行されている Go アプリケーションから MySQL サーバーに接続しようとすると、開発者は次のような問題に遭遇する可能性があります。次のエラー:
dial tcp 127.0.0.1:3306: connect: connection refused
原因:
デフォルトでは、Docker コンテナは隔離されたネットワーク スペースで実行されるため、内部で実行されているアプリケーションがホストに直接アクセスすることはできません。マシンの localhost.
解決策:
この問題を解決するには、 の代わりに特別なホスト名 docker.for.mac.localhost を使用します。ローカルホスト。このアドレスにより、Docker ネットワーキングを使用してホスト マシンのサービスとの通信が可能になります:
<code class="go">db, err = sql.Open("mysql", dbUser+":"+dbPassword+"@tcp(docker.for.mac.localhost:3306)/"+dbName)</code>
<code class="yml">ports: - "3306:3306"</code>
これにより、ホスト マシンのポート 3306 がマップされます。コンテナのポート 3306 に接続し、Go アプリケーションが正しいポート経由で接続できるようにします。
以上が「接続が拒否されました」が発生した場合に、Docker の Go アプリケーションから MySQL サーバーに接続する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。