Node.js menyambung ke bekas MySQL Docker ECONNREFUSED
Apabila cuba menyambung ke bekas MySQL Docker menggunakan Node.js, ralat ECONNREFUSED (cth., ECONNREFUSED 127.0.0.1:3307) mungkin berlaku. Ralat ini menunjukkan bahawa Node.js tidak dapat mewujudkan sambungan ke bekas MySQL.
Konfigurasi Karang Docker
Seperti yang ditunjukkan dalam fail docker-compose.yml yang disediakan , adalah penting untuk memahami bahawa konfigurasi pemetaan port (cth., 3307:3306) hanya menentukan cara Docker memetakan port hos ke port kontena. Bekas itu sendiri masih mendengar pada port lalainya (cth., 3306 untuk MySQL).
Konfigurasi Sambungan Node.js
Untuk menyelesaikan ralat ECONNREFUSED, pastikan Node Aplikasi .js dikonfigurasikan untuk menyambung ke port dalaman bekas MySQL. Dalam contoh yang diberikan, sifat hos hendaklah ditetapkan kepada 'mysql' dan sifat port hendaklah ditetapkan kepada '3306'.
const config = { host: 'mysql', database: 'mydb', port: '3306', user: 'mysql', password: '1234', connectionLimit: 10 };
Arahan dalam Docker Compose
Selain itu, sifat perintah dalam fail docker-compose.yml harus dikemas kini untuk menunggu MySQL pada port 3306 dan bukannya 3307.
command: ["./wait-for-it.sh", "mysql:3306"]
Nota: Adalah disyorkan untuk menggunakan skrip wait-for-it.sh untuk memastikan bekas MySQL dimulakan sepenuhnya sebelum cuba menyambung daripada Node.js. Skrip ini boleh didapati daripada https://github.com/vishnubob/wait-for-it.
Dengan mengikuti langkah-langkah ini, adalah mungkin untuk mewujudkan sambungan antara aplikasi Node.js dan MySQL Bekas dok.
Atas ialah kandungan terperinci Mengapa saya mendapat ralat ECONNREFUSED apabila menyambung ke bekas MySQL Docker saya daripada Node.js?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!