Rumah >pangkalan data >tutorial mysql >Mengapakah pelayan Node.js saya kehilangan sambungan MySQLnya selepas melahu?

Mengapakah pelayan Node.js saya kehilangan sambungan MySQLnya selepas melahu?

Barbara Streisand
Barbara Streisandasal
2024-11-13 01:08:02812semak imbas

Why does my Node.js server lose its MySQL connection after being idle?

MySQL Terputus Sambungan Selepas Masa Terbiar Pelayan Node.js: Menentukan Punca dan Menyelesaikan Dengan Anggun

Pembangun Node.js sering menghadapi "baca ECONNRESET " ralat apabila menggunakan modul nod-mysql untuk menyambung ke MySQL. Ralat ini biasanya berlaku selepas pelayan Node melahu untuk tempoh masa tertentu.

Menentukan Punca

Ralat ini menunjukkan bahawa sambungan antara Node dan MySQL mempunyai telah terputus. MySQL mempunyai had seumur hidup sambungan lalai, yang boleh dikonfigurasikan melalui pembolehubah "wait_timeout". Nilai lalai ialah 8 jam. Jika masa melahu melebihi had ini, MySQL akan memangkas sambungan.

Mengatasi Isu

Untuk menyelesaikan isu ini, dua pendekatan boleh diambil:

  1. Tingkatkan Had Sepanjang Hayat Sambungan MySQL:

    • Tingkatkan pembolehubah "wait_timeout" kepada nilai yang lebih tinggi, seperti 28800 saat (8 jam). Ini akan memanjangkan hayat sambungan dan mengelakkan pemutusan sambungan disebabkan oleh masa melahu.
  2. Gunakan Modul Denyutan Jantung atau Nod-Pool:

    • Gunakan pertanyaan degupan jantung (cth., "PILIH 1;") untuk memastikan sambungan hidup secara berkala.
    • Gunakan modul nod-pool dengan pilihan "idleTimeoutMillis" untuk mengalih keluar sambungan terbiar secara automatik daripada kolam.

Pertimbangan Lanjut

Walaupun faktor lain, seperti pangkalan data atau isu rangkaian, mungkin turut menyumbang kepada ralat "baca ECONNRESET", meningkatkan had hayat sambungan MySQL atau melaksanakan mekanisme degupan jantung dengan nod-pool harus menyelesaikan masalah dalam kebanyakan kes. Jika ralat berterusan, pertimbangkan untuk menyelesaikan masalah kemungkinan punca lain.

Atas ialah kandungan terperinci Mengapakah pelayan Node.js saya kehilangan sambungan MySQLnya selepas melahu?. 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