python 同时连接两个数据库
python 同时连接两个数据库时,第一个数据库操作成功,第二个操作无响应
//连接
db1 = pymsql.connect(host=dbhost, user=dbuser, passwd=dbpass, db=dbname, port=dbport)
db2 = pymsql.connect(host=slavehost, user=slaveuser, passwd=slavepass, db=slavedb, port=dbport)
//获取cursor对象
cursor = db1.cursor()
cursor_build = db2.cursor()
//操作数据库
cursor.execute(sql1)
cursor_build.execute(sql2)
//结果
db1操作成功,db2操作无响应
原因:
当只连接一个库的时候,是可以进行正常的增删改查的。但是当连接多个库的时候,如果不显式设置autocommit的话,mysqldb 会自动在语句执行完加一句 set autocommit = 0。众所周知的是innodb引擎的操作都是带有事务特性的,关闭自动提交自然是无法成功执行sql的。
解决办法:
db1.autocommit(1)
db2.autocommit(1)
作者:苏su
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利.
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY