Menyelesaikan ralat tamat masa ketidakaktifan jabat tangan dalam modul MYSQL Node.js
P粉205475538
2023-08-22 16:34:16
<p>Saya menggunakan <code>node-mysql</code> dan kebanyakan pertanyaan berfungsi dengan baik. Tetapi beberapa pertanyaan tidak berfungsi.
Saya mencuba setiap versi Node (dari 0.5... hingga 5.6.0), saya juga mencuba 4.0 dan 4.1 tetapi tidak membantu. </p>
<p>Saya cuba menukarnya secara manual tetapi ia tidak berjaya. Saya cuba menukar fail <code>urutan</code> kepada: <code>this._idleTimeout = -1;</code> </p>
<p>Saya membaca isu dan bahan di GitHub tetapi ia tidak membantu. </p>
<p>Saya boleh cuba membetulkannya sendiri, tetapi saya memerlukan maklumat lanjut. Di manakah tamat masa berlaku? kenapa? Bila ia berlaku? Apakah jenis mesej ini? Dari mana datangnya tamat masa? </p>
<pre class="brush:php;toolbar:false;">MYSQL_ERROR { [Ralat: Tamat masa tidak aktif jabat tangan]
kod: 'PROTOCOL_SEQUENCE_TIMEOUT', maut: benar,
tamat masa: 10000 }</pre>
<p><br /></p>
Bagi
AWS
上部署并遇到此错误的用户,您需要对数据库/集群的安全组进行更改,添加入站规则
,其中源
ialah kumpulan keselamatan daripada contoh.Peraturan masuk sepatutnya kelihatan seperti ini:
Baiklah, tamat masa adalah dari baris 162 fail Protocol.js. Jika anda melihat node-mysql, anda akan melihat bahawa pembolehubah yang ditanya ialah "masa tamat". Jika anda menetapkan tamat masa kepada nilai yang jauh lebih tinggi daripada lalai 10000, ralat akan hilang. Contohnya ialah
Anda juga boleh mengedit tamat masa dalam fail Sequence.js (node_modules/mysql/lib/protocol/sequences/Sequence.js)