>  Q&A  >  본문

Node.js MYSQL 모듈의 핸드셰이크 비활성 시간 초과 오류 해결

<p>저는 <code>node-mysql</code>을 사용하고 있으며 대부분의 쿼리가 잘 작동합니다. 그러나 일부 쿼리는 작동하지 않습니다. Node의 모든 버전(0.5~5.6.0)을 시도했고, 4.0과 4.1도 시도했지만 둘 다 도움이 되지 않았습니다. </p> <p>수동으로 변경해 보았지만 작동하지 않았습니다. <code>sequence</code> 파일을 다음과 같이 변경해 보았습니다. <code>this._idleTimeout = -1;</code> 그것도 도움이 되지 않았습니다. </p> <p>GitHub에서 문제와 내용을 읽었지만 도움이 되지 않았습니다. </p> <p>스스로 문제를 해결할 수도 있지만 추가 정보가 필요합니다. 시간 초과는 어디에서 발생합니까? 왜? 언제 일어난 일입니까? 이것은 어떤 유형의 메시지입니까? 시간 초과는 어디에서 발생합니까? </p> <pre class="brush:php;toolbar:false;">MYSQL_ERROR { [오류: 핸드셰이크 비활성 시간 초과] 코드: 'PROTOCOL_SEQUENCE_TIMEOUT', 치명적: true, 시간 초과: 10000 }</pre> <p><br /></p>
P粉205475538P粉205475538424일 전459

모든 응답(2)나는 대답할 것이다

  • P粉547420474

    P粉5474204742023-08-23 15:56:17

    AWS 上部署并遇到此错误的用户,您需要对数据库/集群的安全组进行更改,添加入站规则,其中 인스턴스의 보안 그룹 입니다.

    인바운드 규칙은 다음과 같아야 합니다.

    으아악

    회신하다
    0
  • P粉155128211

    P粉1551282112023-08-23 09:38:03

    알겠습니다. 시간 초과는 Protocol.js 파일의 162번째 줄에서 발생합니다. node-mysql을 보면 쿼리된 변수가 "timeout"인 것을 볼 수 있습니다. 제한 시간을 기본값인 10000보다 훨씬 높은 값으로 설정하면 오류가 사라집니다. 예를 들면

    으아아아

    Sequence.js 파일(node_modules/mysql/lib/protocol/sequences/Sequence.js)에서 시간 초과를 편집할 수도 있습니다

    으아아아

    회신하다
    0
  • 취소회신하다