簡體   English   中英

pymysql.err.OperationalError - 查詢期間丟失與 MySQL 服務器的連接

[英]pymysql.err.OperationalError - Lost connection to MySQL server during query

我正在使用 Python 腳本將記錄插入 MySQL 數據庫表。 腳本失敗並顯示以下錯誤消息。

MySQL 版本為 8.0.17Python 版本為 3.6.5

(pymysql.err.OperationalError) (2013, 'Lost connection to MySQL server during query ([WinError 10060] 連接嘗試失敗,因為連接方在一段時間后沒有正確響應,或建立連接失敗,因為連接主機失敗回復)')

(此錯誤的背景: http://sqlalche.me/e/e3q8

問題僅適用於幾張桌子。

在此處輸入圖像描述

MySQL 自動關閉在特定時間段內空閑的連接(對於非交互式連接, wait_timeout )。 因此,如果空閑時間過多並且連接未更新或連接因服務器重新啟動而無效,則可能會發生連接關閉。

SQL-Alchemy在其關於如何處理池斷開連接的文檔中提到了一些關於如何解決自動斷開連接和數據庫重新啟動問題的策略。

您應該查看的兩個選項是pool_pre_ping參數,該參數在每個查詢之前添加SELECT 1以檢查連接是否仍然有效,否則將回收連接。

另一個選項是pool_recycle時間,它應該總是小於你的 mysql wait_timeout 在此時間之后,連接會自動回收,不會在wait_timeout中運行。

您可以使用以下命令檢查 MySQL 中的連接

SHOW PROCESSLIST;

您應該在其中看到所有打開的連接以及它們所處的狀態。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM