Rumah  >  Artikel  >  pangkalan data  >  Mengapa Apl Node.js Saya Mendapat Ralat ECONNREFUSED Apabila Menyambung ke Bekas Docker MySQL?

Mengapa Apl Node.js Saya Mendapat Ralat ECONNREFUSED Apabila Menyambung ke Bekas Docker MySQL?

Linda Hamilton
Linda Hamiltonasal
2024-11-11 00:01:03531semak imbas

Why Does My Node.js App Get an ECONNREFUSED Error When Connecting to a MySQL Docker Container?

Sambungan Node.js ke MySQL Docker Container ECONNREFUSED

Isu:

Walaupun mempunyai Docker mengarang fail dengan bekas MySQL dan Node.js yang dipautkan, Node.js apl menghadapi ralat ECONNREFUSED semasa cuba menyambung ke bekas MySQL menggunakan port 3307.

Analisis:

Fail karang Docker memetakan port 3307 hos kepada 3306 dalam bekas. Walau bagaimanapun, bekas MySQL sedang mendengar pada 3306 secara dalaman. Ini membawa kepada isu di mana Node.js cuba menyambung ke port 3307 hos, yang bukan port yang didengari oleh bekas.

Penyelesaian:

Untuk menyelesaikan isu ini, laraskan konfigurasi MySQL dan fail karang Docker seperti berikut:

MySQL yang diubah suai Konfigurasi:

const config = {
    host: 'mysql',  // Use the MySQL container DNS name
    database: 'mydb',
    port: '3306',  // Match the port the MySQL container is listening on
    user: 'mysql',
    password: '1234',
    connectionLimit: 10
}

Fail Karang Docker Terubah Suai:

command: ["/bin/bash", "./wait-for-it.sh", "mysql:3306"]  // Match the port MySQL is listening on

Dengan membuat pengubahsuaian ini, apl Node.js kini akan bersambung ke MySQL bekas menggunakan port yang betul dan ralat ECONNREFUSED harus diselesaikan.

Atas ialah kandungan terperinci Mengapa Apl Node.js Saya Mendapat Ralat ECONNREFUSED Apabila Menyambung ke Bekas Docker MySQL?. 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