Rumah >pangkalan data >tutorial mysql >Mengapa saya mendapat ralat 'baca ECONNRESET' dalam aplikasi MySQL Node.js saya selepas masa terbiar?

Mengapa saya mendapat ralat 'baca ECONNRESET' dalam aplikasi MySQL Node.js saya selepas masa terbiar?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-11-20 03:27:02185semak imbas

Why do I get a

MySQL membaca Ralat ECONNRESET selepas Masa Terbiar pada Pelayan Node.js

Aplikasi Node.js yang berinteraksi dengan MySQL melalui node-mysql sering menghadapi ralat "baca ECONNRESET" selepas masa terbiar. Isu ini menimbulkan beberapa soalan:

1. Putuskan Sambungan Node ke Pelayan MySQL?

Ya, ralat mencadangkan pemutusan sambungan antara pelayan Node dan MySQL. MySQL mempunyai pembolehubah "wait_timeout" yang menentukan had masa terbiar sebelum menutup sambungan. Lalai ialah 8 jam.

2. Ketidakupayaan Kolam Sambungan untuk Mengendalikan Pemutus Sambungan?

Walaupun node-mysql menggunakan kolam sambungan, ia tidak secara automatik memangkas sambungan yang terputus. Isu ini mungkin kekal tidak dapat dikesan sehingga pertanyaan dicuba.

3. Meneroka Sumber Ralat Lain?

Walaupun ralat "baca ECONNRESET" adalah perkara biasa, adalah berfaedah untuk menolak punca berpotensi lain di luar MySQL.

Penyelesaian:

Untuk menangani isu ini:

  1. Tingkatkan wait_timeout: Tetapkan "wait_timeout" MySQL kepada nilai yang lebih tinggi (cth., 28800 saat) untuk mengelakkan sambungan daripada ditamatkan.
  2. Laksanakan Degupan Jantung: Secara berkala laksanakan pertanyaan seperti "PILIH 1;" untuk mengekalkan hubungan hidup. Sebagai alternatif, gunakan modul nod-pool dengan pilihan "idleTimeoutMillis".
  3. Gunakan Kolam Sambungan: Kolam sambungan seperti kolam nod boleh memangkas sambungan melahu secara automatik, memastikan sambungan aktif dikekalkan.

Atas ialah kandungan terperinci Mengapa saya mendapat ralat 'baca ECONNRESET' dalam aplikasi MySQL Node.js saya selepas masa terbiar?. 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