MySQL 연결 문제: "연결 끊김: 서버가 연결을 종료했습니다."
문제:
MySQL에서 Node.js를 사용할 때 특정 시간에 "연결이 끊어졌습니다: 서버가 연결을 닫았습니다" 오류가 발생합니다. (보통 자정부터 오전 2시 사이).
해결책:
이 문제를 해결하려면 아래 단계를 따르십시오.
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();
설명:
이 코드 조각은 새 연결이 끊어지면 MySQL 서버에 연결됩니다. setTimeout 함수는 핫 루프를 방지하기 위해 지연을 도입하여 스크립트가 다시 연결하는 동안 다른 요청을 처리할 수 있도록 합니다.
오류 처리기는 일반적으로 서버를 다시 시작하는 동안 발생하는 'PROTOCOL_CONNECTION_LOST' 오류를 처리하도록 구성됩니다. 다른 오류는 다시 발생하여 문제에 대한 자세한 정보를 제공합니다.
handleDisconnect() 함수가 호출되어 오류 처리 및 재연결 프로세스를 시작합니다.
위 내용은 자정부터 오전 2시 사이에 Node.js MySQL 연결이 실패하는 이유는 무엇이며 어떻게 해결할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!