Apabila cuba menyambung ke pelayan MySQL daripada aplikasi Go yang dijalankan dalam Docker, pembangun mungkin menghadapi ralat berikut:
dial tcp 127.0.0.1:3306: connect: connection refused
Punca:
Secara lalai, bekas Docker dijalankan dalam ruang rangkaian terpencil, menjadikannya mustahil untuk aplikasi yang berjalan di dalam mengakses hos secara terus localhost mesin.
Penyelesaian:
Untuk menyelesaikan isu ini, gunakan nama hos khas docker.for.mac.localhost dan bukannya localhost. Alamat ini membolehkan komunikasi dengan perkhidmatan mesin hos dengan menggunakan rangkaian 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>
Ini akan memetakan port mesin hos 3306 ke port kontena 3306, membenarkan aplikasi Go menyambung melalui port yang betul.
Atas ialah kandungan terperinci Bagaimana untuk Menyambung ke Pelayan MySQL daripada Aplikasi Go dalam Docker Apabila Menghadapi \'Sambungan Ditolak\'?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!