首页 经验

诗词速通,漫游泡泡,词汇宝,新维日语,简易物理,点此下载


用 raw_connection() 打开但没关闭的僵尸连接

时间: 2026-04-18 19:02:57

(部分内容来自网络,其真实性存疑,为了避免对您造成误导,请谨慎甄别。)

好,看到结果了。问题很清楚:


🎯 凶手找到了


连接ID 10119 这三个 Sleep 状态的连接,空闲时间分别是:

- ID 10:空闲了 10111秒(约2.8小时)

- ID 11:空闲了 9992秒(约2.8小时)  

- ID 9:空闲了 140秒


这些就是你之前用 raw_connection() 打开但没关闭的僵尸连接!它们一直占着茅坑不拉屎,导致表被锁。


🔪 立刻执行,杀了它们


KILL 10;
KILL 11;
KILL 9;


杀了之后验证一下


SHOW PROCESSLIST;


应该看不到那几个 Sleep 连接了,表锁立刻解除。


📝 总结一下你踩的坑


你做的事后果
connection = engine.raw_connection()打开一个连接
df = pd.read_sql_query(sql, connection)用这个连接查数据
没有 connection.close()连接永远不关,变成僵尸
再次操作同一个表MySQL 看到有旧连接还活着 → 锁表


✅ 以后记住这个模板


# 方式1:最简单,不会错
df = pd.read_sql_query("SELECT ...", engine)

# 方式2:非要用raw_connection,必须加with with engine.raw_connection() as conn:     df = pd.read_sql_query("SELECT ...", conn) # 出了with自动关闭,100%不会留僵尸


杀了那三个ID,问题解决。妈的这破坑害了多少人。


还有问题,向AI提问。


上一个 西语app截图 文章列表 下一个 用完连接后没有关闭

(汉语/英语/日语/法语/德语)语音助手(识别/合成),智能翻译,高中物理动画,数据分析,数据可视化,电话: 18201798243(同v)

© 2019-至今 适观科技

沪ICP备17002269号