Node.js MySQL 연결이 유휴 시간 후에 'read ECONNRESET'을 발생시키는 이유는 무엇입니까?

DDD
풀어 주다: 2024-11-12 06:45:02
원래의
183명이 탐색했습니다.

Why Does My Node.js MySQL Connection Throw

Node.js 서버 유휴 시간 이후 MySQL의 "read ECONNRESET" 오류 문제 해결

문제 개요

Node.js 서버가 node-mysql 모듈을 통해 MySQL에 연결되는 경우 오랫동안 유휴 상태로 유지되면 첫 번째 후속 쿼리에서 "ECONNRESET 읽기" 오류가 발생하는 경우가 많습니다. 이 오류는 Node와 MySQL 사이의 연결이 끊어졌음을 의미합니다.

질문과 답변

1. 연결 수명 제한?

답변: 예, MySQL에는 특정 시간(기본값: 8시간)이 지나면 유휴 연결을 끊는 "wait_timeout" 변수가 있습니다.

2. 연결 풀을 통한 정상적인 연결 해제 처리?

답변: Node-mysql의 연결 풀은 연결이 끊어진 연결을 자동으로 정리하지 않습니다. 하트비트 또는 node-pool의 idleTimeoutMillis 옵션을 사용하여 연결 가용성을 유지할 수 있습니다.

3. MySQL 이외의 문제를 해결하시겠습니까?

답변: 오류는 일반적으로 MySQL과 관련되어 있지만 네트워크 문제나 Node.js 코드와 같은 다른 잠재적인 원인을 배제하는 것이 좋습니다. 연결.

솔루션

  • MySQL "wait_timeout" 확장: 연결 정리를 방지하려면 MySQL 시간 초과를 늘립니다.
  • 하트비트 구현: "SELECT와 같은 쿼리를 사용하세요. 1;" 활성 연결을 유지하고 연결 끊김을 방지하기 위해 일정 간격으로 실행합니다.
  • node-pool의 "idleTimeoutMillis" 구성: node-pool 모듈을 사용하여 유휴 연결을 자동으로 정리합니다.

추가 정보

오류로 인해

  • Node와 MySQL 서버 간의 네트워크 연결 문제.
  • MySQL 서버에 영향을 미치는 높은 로드 또는 대기 시간.

위 내용은 Node.js MySQL 연결이 유휴 시간 후에 'read ECONNRESET'을 발생시키는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿