2016-02-22 24 views
6

私はnode-mysqlとほとんどのクエリを使用しています。ワーキング。いくつかのクエリは機能しません。 私はNode(0.5から...)まで(5.6.0)、私も(4.0)と(4.1)を試しましたが、Nothingは役に立ちません。Error:Node.jsのハンドシェーク・イン・タイムアウト・タイムアウトMYSQLモジュール

私は変態的に変えようとしたが、うまくいかなかった。 sequenceファイルをthis._idleTimeout = -1;に変更しようとしましたが、役に立たなかった。

問題とGitHubを読みましたが、何も助けられませんでした。

私は自分で修正しようとすることができますが、もっと情報が必要です。タイムアウトはどこですか?いつ?このタイプのメッセージは何ですか?タイムアウトはどこから来たのですか?

MYSQL_ERROR  { [Error: Handshake inactivity timeout] 
code: 'PROTOCOL_SEQUENCE_TIMEOUT', fatal: true, 
timeout: 10000 } 

私は約100〜150ポイントのためにそれを報奨金、そして最良の答えに報酬を与える、と私は行うことができます(2日待つ必要があり)ます。 あなたが前に答えても、あなたは賞を得るでしょう。

答えて

1

OK、タイムアウトはProtocol.jsファイル行から来ます:162。 node-mysqlをチェックアウトすると、それがクエリの変数「タイムアウト」であることがわかります。タイムアウトを10000よりもずっと高いデフォルト値に設定すると、エラーは消えてしまいます。たとえばあなたはまた、Sequence.jsファイルでタイムアウトを編集することができ

pool = require('mysql').createPool({ 
    connectionLimit : 1000, 
    connectTimeout : 60 * 60 * 1000, 
    aquireTimeout : 60 * 60 * 1000, 
    timeout   : 60 * 60 * 1000, 
    host   : process.env.DB_HOST, 
    user   : process.env.DB_USERNAME, 
    password  : process.env.DB_PASSWORD, 
    database  : process.env.DB_DATABASE 
}); 

です(node_modules/mysqlの/ libに/プロトコル/シーケンス/ Sequence.js)

this._timeout = 100000;

関連する問題