ホームページ  >  に質問  >  本文

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日前463

全員に返信(2)返信します

  • P粉547420474

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

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

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

    リーリー

    返事
    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
  • キャンセル返事