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
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利.