>  기사  >  데이터 베이스  >  MySQL 연결이 유휴 상태인 후 Node.js에서 "read ECONNRESET" 오류가 발생하는 이유는 무엇입니까?

MySQL 연결이 유휴 상태인 후 Node.js에서 "read ECONNRESET" 오류가 발생하는 이유는 무엇입니까?

Susan Sarandon
Susan Sarandon원래의
2024-11-12 04:27:02614검색

Why am I getting

유휴 시간 이후 Node.js에서 MySQL "read ECONNRESET" 오류

node-mysql 모듈을 통해 MySQL에 연결할 때 다음이 발생할 수 있습니다. 오랫동안 서버를 유휴 상태로 두면 "ECONNRESET 읽기" 오류가 발생합니다. 이 오류는 잠재적으로 MySQL의 유휴 연결 정리 메커니즘으로 인해 연결이 재설정되었음을 나타냅니다.

문제 진단:

  • 연결 끊김: 이 오류는 Node의 연결과 MySQL 서버 간의 연결이 끊어졌음을 나타냅니다. 이는 기본값이 8시간인 MySQL 변수 "wait_timeout" 설정으로 인해 발생할 수 있습니다.
  • 연결 풀 문제: Node-mysql은 연결 풀을 사용하여 연결 끊김을 처리하고 비활성 연결을 제거합니다. 그러나 쿼리를 할 때까지 연결이 끊긴 연결을 정리하지 못할 수도 있으며, 이로 인해 오류가 발생합니다.
  • 외부 요인: "read ECONNRESET" 오류는 종종 MySQL과 관련되어 있습니다. , 연결 끊김의 원인이 되는 잠재적인 외부 요인이 있는지 확인하는 것이 좋습니다.

오류 해결:

  • 대기 시간 초과 늘리기: MySQL "wait_timeout" 변수를 28,800초(8시간)와 같이 더 긴 기간으로 설정합니다. 이렇게 하면 연결이 끊어지지 않고 더 오랜 기간 동안 비활성 상태가 유지됩니다.
  • 풀 정리 사용: 코드에 하트비트 메커니즘을 구현하여 주기적으로 SELECT 1을 보냅니다. 데이터베이스에 대한 쿼리를 수행하여 연결을 유지합니다.
  • 유휴 시간 초과 강조: 노드 풀 모듈의dleTimeoutMillis 옵션을 사용하여 유휴 연결을 자동으로 정리하여 문제 발생을 방지합니다.

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

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.