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

Susan Sarandon
Lepaskan: 2024-11-11 02:39:02
asal
152 orang telah melayarinya

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
};
Salin selepas log masuk

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"]
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan