Rumah >pangkalan data >tutorial mysql >Mengapa saya mendapat ralat ECONNREFUSED apabila menyambung ke bekas MySQL Docker saya daripada Node.js?

Mengapa saya mendapat ralat ECONNREFUSED apabila menyambung ke bekas MySQL Docker saya daripada Node.js?

Susan Sarandon
Susan Sarandonasal
2024-11-11 02:39:02218semak imbas

Why am I getting an ECONNREFUSED error when connecting to my MySQL Docker container from Node.js?

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!

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