Rumah > pangkalan data > tutorial mysql > Mengapa Sambungan MySQL Node.js Saya Gagal Antara Tengah Malam dan 2 Pagi, dan Bagaimana Saya Boleh Membetulkannya?

Mengapa Sambungan MySQL Node.js Saya Gagal Antara Tengah Malam dan 2 Pagi, dan Bagaimana Saya Boleh Membetulkannya?

Patricia Arquette
Lepaskan: 2024-12-09 18:35:15
asal
660 orang telah melayarinya

Why Does My Node.js MySQL Connection Fail Between Midnight and 2 AM, and How Can I Fix It?

Isu Sambungan MySQL: "Sambungan terputus: Pelayan menutup sambungan"

Masalah:

Apabila menggunakan Node.js dengan MySQL, ralat "Sambungan hilang: Pelayan menutup sambungan" berlaku pada waktu tertentu (biasanya antara tengah malam dan 2 PG).

Penyelesaian:

Ikuti langkah di bawah untuk menangani isu ini:

var db_config = {
  host: 'localhost',
    user: 'root',
    password: '',
    database: 'example'
};

var connection;

function handleDisconnect() {
  // Recreate the connection
  connection = mysql.createConnection(db_config);

  connection.connect(function(err) {
    if(err) {
      console.log('error when connecting to db:', err);
      setTimeout(handleDisconnect, 2000); // Delay before reconnecting
    }
  });

  // Handling connection errors
  connection.on('error', function(err) {
    console.log('db error', err);
    if(err.code === 'PROTOCOL_CONNECTION_LOST') {
      handleDisconnect();
    } else {
      throw err;
    }
  });
}

handleDisconnect();
Salin selepas log masuk

Penjelasan:

Coretan kod ini mencipta sambungan baharu ke pelayan MySQL apabila terputus sambungan berlaku. Fungsi setTimeout memperkenalkan kelewatan untuk menghalang gelung panas, membenarkan skrip memproses permintaan lain semasa menyambung semula.

Pengendali ralat dikonfigurasikan untuk mengendalikan ralat 'PROTOCOL_CONNECTION_LOST', yang biasanya berlaku semasa pelayan dimulakan semula. Ralat lain dibaling semula, memberikan maklumat yang lebih terperinci tentang isu tersebut.

Fungsi handleDisconnect() dipanggil untuk memulakan proses pengendalian dan penyambungan semula ralat.

Atas ialah kandungan terperinci Mengapa Sambungan MySQL Node.js Saya Gagal Antara Tengah Malam dan 2 Pagi, dan Bagaimana Saya Boleh Membetulkannya?. 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