Menyelesaikan Node.js MySQL Docker Connection ECONNREFUSED
Dalam Node.js, ralat "ECONNREFUSED" biasanya menunjukkan kegagalan sambungan apabila cuba untuk menyambung ke pangkalan data. Apabila menyambung ke pangkalan data MySQL yang berjalan dalam bekas Docker, isu ini boleh diselesaikan dengan memastikan pemetaan port yang betul.
Secara lalai, Docker memetakan port hos ke port lain dalam bekas. Dalam fail Docker Compose yang anda berikan, bekas MySQL didedahkan pada port 3307 pada hos, sambil mendengar secara dalaman pada port 3306.
Untuk menyelesaikan percanggahan ini, ubah suai konfigurasi Node.js untuk menentukan port yang betul untuk menyambung ke MySQL:
const config = { host: 'mysql', // Use the container name database: 'mydb', port: '3306', // Use the internal container port user: 'mysql', password: '1234', connectionLimit: 10 };
Selain itu, pastikan arahan Docker Compose menggunakan port yang betul semasa menunggu MySQL menjadi tersedia:
command: ["./wait-for-it.sh", "mysql:3306"]
Pengubahsuaian ini akan membolehkan Node.js menyambung ke bekas MySQL dengan jayanya.
Atas ialah kandungan terperinci Bagaimana untuk Membetulkan Ralat 'ECONNREFUSED' Semasa Menyambung ke Kontena Docker MySQL dalam Node.js?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!