Ralat: "dail tcp 127.0.0.1:3306: sambung: sambungan ditolak" Apabila Menyambung ke MySQL daripada Go in Docker
Dalam cuba menyambung ke pelayan MySQL yang berjalan pada Mac menggunakan Go dan Docker, mesej ralat muncul: "dail tcp 127.0.0.1:3306: sambung: sambungan ditolak." Ralat ini berlaku walaupun berjaya menyambung ke pangkalan data pada localhost:3306 menggunakan Navicat untuk MySQL.
Ralat ini dihadapi kerana sifat pengasingan Docker pada Mac. Docker berjalan dalam mesin maya (VM) di bawah permukaan, menjadikannya sukar untuk mengakses perkhidmatan yang disediakan oleh mesin hos secara langsung.
Untuk menyelesaikan isu ini, laraskan rentetan sambungan anda untuk menggunakan docker.for.mac.localhost :3306 bukannya 127.0.0.1:3306. Nama hos khas ini membenarkan komunikasi antara bekas Docker dan mesin hos.
Kod Go yang dipinda sepatutnya kelihatan seperti ini:
<code class="go">db, err = sql.Open("mysql", dbUser+":"+dbPassword+"@tcp(docker.for.mac.localhost:3306)/"+dbName)</code>
Pengubahsuaian ini harus menyelesaikan isu sambungan dan membolehkan komunikasi antara anda Aplikasi Go dan pelayan MySQL berjalan pada mesin hos.
Atas ialah kandungan terperinci Mengapa Apl My Go dalam Docker Tidak Boleh Bersambung ke MySQL pada Mac saya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!