Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Membetulkan Ralat 'ECONNREFUSED' Semasa Menyambung ke Kontena Docker MySQL dalam Node.js?

Bagaimana untuk Membetulkan Ralat 'ECONNREFUSED' Semasa Menyambung ke Kontena Docker MySQL dalam Node.js?

Barbara Streisand
Barbara Streisandasal
2024-11-10 19:46:02253semak imbas

How to Fix

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn