Home >Database >Mysql Tutorial >Why Does My Node.js MySQL Connection Fail Between Midnight and 2 AM, and How Can I Fix It?
MySQL Connection Issue: "Connection lost: The server closed the connection"
Problem:
When using Node.js with MySQL, a "Connection lost: The server closed the connection" error occurs at specific times (usually between midnight and 2 AM).
Solution:
Follow the below steps to address this issue:
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();
Explanation:
This code snippet creates a new connection to the MySQL server when a disconnect occurs. The setTimeout function introduces a delay to prevent a hot loop, allowing the script to process other requests while reconnecting.
The error handler is configured to handle 'PROTOCOL_CONNECTION_LOST' errors, which typically occur during server restarts. Other errors are re-thrown, providing more detailed information about the issue.
The handleDisconnect() function is called to initiate the error handling and reconnection process.
The above is the detailed content of Why Does My Node.js MySQL Connection Fail Between Midnight and 2 AM, and How Can I Fix It?. For more information, please follow other related articles on the PHP Chinese website!