Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/303.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 为什么MySQLdb会获得重复的db连接_Python_Mysql_Mysql Python - Fatal编程技术网

Python 为什么MySQLdb会获得重复的db连接

Python 为什么MySQLdb会获得重复的db连接,python,mysql,mysql-python,Python,Mysql,Mysql Python,我使用MySQLdb作为pythonmysql连接。我的测试代码如下: for i in range(6): db = MySQLdb.connect('localhost','user','passwd','test')) print db _mysql.connection open to localhost at 1bba010 _mysql.connection open to localhost at 1c1ba90 _mysql.connection open to l

我使用MySQLdb作为pythonmysql连接。我的测试代码如下:

for i in range(6):
   db = MySQLdb.connect('localhost','user','passwd','test'))
   print db
_mysql.connection open to localhost at 1bba010
_mysql.connection open to localhost at 1c1ba90
_mysql.connection open to localhost at **1c34fa0**
_mysql.connection open to localhost at **1c3cdb0**
_mysql.connection open to localhost at **1c34fa0**
_mysql.connection open to localhost at **1c3cdb0**
我得到的结果如下:

for i in range(6):
   db = MySQLdb.connect('localhost','user','passwd','test'))
   print db
_mysql.connection open to localhost at 1bba010
_mysql.connection open to localhost at 1c1ba90
_mysql.connection open to localhost at **1c34fa0**
_mysql.connection open to localhost at **1c3cdb0**
_mysql.connection open to localhost at **1c34fa0**
_mysql.connection open to localhost at **1c3cdb0**

您会发现最后两个连接对象是重复的。当我使用多进程查询mysql时,这是一个问题。i、 e,当一个进程完成作业时,它将关闭连接,而其他进程仍在使用相同的db连接,我应该如何解决此问题

内存位置的重复使用不是问题。在测试程序中,关闭连接并释放对象。这意味着内存被释放,并可重复使用。然后创建一个新的连接对象,并再次使用内存位置


地址是交替的,因为对象1在创建对象2之后才被释放,对象2在创建对象3之前才被释放,依此类推。

我删除了db.close(),仍然得到相同的连接对象。我使用多个进程来查询mysql,每个进程我创建了一个新连接,但它们都有重复的连接。当相同的连接被先前的进程关闭时,它会导致异常。我很困惑,MySQLdb中有默认的连接池吗?如果是这样,我真的不想用它。db.close不是有趣的部分。释放对象时,连接可能会隐式关闭。