关于python里MySQL关闭问题

关于python里MySQL关闭问题

想请问老师,我发现我的MySQL在执行任务后,我使用的是连接池的方式,没执行一个模块后,就会进行close关闭,但是我的远程连接里查看,连接数量并没有关闭,一直在网上涨,这是什么原因呢?


相关代码:

import mysql.connector

__config = {
    'host': 'sh-cdb-a9d5qef8.sql.tencentcdb.com',
    'port': 63517,
    'user': 'xianyuzhiwang',
    'password': 'Qaz5515963*',
    'database': 'xianyuzhiwang'
}

try:
    pool = mysql.connector.pooling.MySQLConnectionPool(pool_name='xianyu', pool_size=2, **__config)
except Exception as e:
    print('mysql_db 错误:', e)

相关代码:

from db.mysql_db import pool

class MysqlDao(object):
    # 查看用户设置
    def search_user_setting(self, machine_number):
        try:
            con = pool.get_connection()
            cursor = con.cursor()
            sql = 'SELECT pot, receive_time, daily_tasks, daily_reward, daily_pot, pata, jlb_bm ' \
                  'FROM t_setting WHERE machine_number=%s'
            cursor.execute(sql, [machine_number])
            result = cursor.fetchone()
            return result
        except Exception as e:
            print(e)
        finally:
            if 'con' in dir():
                con.close()

这是类似一个例子,con.close()好像并不能断开连接

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

1回答
好帮手慕小猿 2023-09-01 18:13:27

同学,你好!1、同学说的“远程连接里查看”是哪里的远程连接呢?是什么软件吗?同学可以截取下图

2、con.close() 是释放连接资源,是将连接池中的连接释放,返回到池中。这样连接就可以复用了。并不是关闭


祝学习愉快~


  • 提问者 慕的地8261015 #1

    使用的是腾讯云数据库MySQL,https://img1.sycdn.imooc.com//climg/64f2f7fe0975953a07570283.jpg当时检测会一直不断的上涨,最后突破到1500,如果我改为非连接池的方式,就正常的数量

    2023-09-02 16:53:49
  • 提问者 慕的地8261015 #2

    因为我用的是,进程池,然后线程执行会用到数据库连接池,是这个原因造成的数量一直上涨吗

    2023-09-02 16:54:46
  • 好帮手慕小猿 回复 提问者 慕的地8261015 #3

    同学,你好!我看同学同一时间有7个连接数是可能的

    https://img1.sycdn.imooc.com//climg/64f31f270930cb5f08750283.jpg

    同一时间进程池中的多进程在执行,每个进程会使用数据库连接池中的连接,是可能同时有多个连接数的

    祝学习愉快~


    2023-09-02 19:44:08
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师