Node.js MYSQL 모듈의 핸드셰이크 비활성 시간 초과 오류 해결
P粉205475538
2023-08-22 16:34:16
<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>
AWS
上部署并遇到此错误的用户,您需要对数据库/集群的安全组进行更改,添加入站规则
,其中源
은 인스턴스의 보안 그룹 입니다.인바운드 규칙은 다음과 같아야 합니다.
으아악알겠습니다. 시간 초과는 Protocol.js 파일의 162번째 줄에서 발생합니다. node-mysql을 보면 쿼리된 변수가 "timeout"인 것을 볼 수 있습니다. 제한 시간을 기본값인 10000보다 훨씬 높은 값으로 설정하면 오류가 사라집니다. 예를 들면
으아아아Sequence.js 파일(node_modules/mysql/lib/protocol/sequences/Sequence.js)에서 시간 초과를 편집할 수도 있습니다
으아아아