Node.js の MYSQL モジュールでのハンドシェイク非アクティブ タイムアウト エラーの解決
P粉205475538
P粉205475538 2023-08-22 16:34:16
0
2
502
<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粉205475538
P粉205475538

全員に返信(2)
P粉547420474

AWS にデプロイしていてこのエラーが発生した場合は、データベース/クラスターのセキュリティ グループを変更する必要があります。 受信ルールを追加します ここで、source は、 インスタンスのセキュリティ グループ です。

受信ルールは次のようになります:

リーリー

いいねを押す +0
P粉155128211

わかりました。タイムアウトは Protocol.js ファイルの 162 行目からのものです。 node-mysql を見ると、クエリされた変数が「timeout」であることがわかります。タイムアウトをデフォルトの 10000 よりも大幅に大きい値に設定すると、エラーは解消されるはずです。例は

です リーリー

Sequence.js ファイル (node_modules/mysql/lib/protocol/sequences/Sequence.js) でタイムアウトを編集することもできます。 リーリー

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート