【问题标题】:Issue in pooling multiple mysql connection汇集多个mysql连接的问题
【发布时间】:2015-10-06 18:07:36
【问题描述】:

我尝试实现 mysql 池,但有一个问题: 我正在从一个环境变量解析 mysql 连接凭据,该变量基本上是一个字典,其中包含多个数据库凭据。

   dict={'db1': {'username':**** ,'password':**** ,'database':*****,'host':****,'uri': mysql url with username ,password,database}, 
         'db2': {'username': ****, 'hostname': *****,host: ******, 'password': ***,'uri': mysql url with username ,password,database}}

global conn
conn={}
def connect():
 cred=json.loads(os.environ['dict'])
 for db in cred:
   multiple_databases=cred[db]['uri']
   url=urlparse.urlparse(multile_databases)           
   conn[db]={'user':'url.username','password':'url.password','host':'url.hostname','database':'url.path[1:]'}
   cnx = mysql.connector.connect(pool_name = "mypool",
                          pool_size = 3,
                          **conn[db])
connect()

这里的问题是只有一个连接被打开,它是针对数据库“db2”的。

当我在不实现池的情况下执行相同的代码时,两个连接都可以正常工作/打开。

  for db in cred:
   multiple_databases=cred[db]['uri']
   url=urlparse.urlparse(multile_databases)           
   conn[db]=mysql.connector.connect(user=url.username,password=url.password,host=url.hostname,database=url.path[1:])

问题:在实现池化时,为什么两个连接都没有打开?

【问题讨论】:

    标签: python mysql connection-pooling mysql-python mysql-connector


    【解决方案1】:

    想通了

    def conn1():
     pool_size = 3
    ser=json.loads(os.environ['dict'])
    for db in ser:
      instance_1=ser[db]['uri']
      url=urlparse.urlparse(instance_1)
      pool[db]=PooledDB(mysql.connector, pool_size, user=url.username, password=url.password, host=url.hostname, database=url.path[1:])
      cnx=[None,]*pool_size
      for i in xrange(0,pool_size):
     cnx[i]=pool[db].connection()
     cursor=cnx[i].cursor()
     cursor.execute('SELECT CONNECTION_ID()')
     print "Cnx %d has ID %d" % (i+1,cursor.fetchone()[0])
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-04-24
      • 1970-01-01
      • 1970-01-01
      • 2020-04-04
      • 2010-12-30
      • 1970-01-01
      相关资源
      最近更新 更多