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!