import mysql.connector.pooling import logging logger = logging.getLogger("db_pool") DB_CONFIG = { "host": "localhost", "port": 3306, "user": "ctnt_root", "password": "Umsang6595!!", "database": "carbon_cutting_mc_db", "autocommit": True, } try: dbpool = mysql.connector.pooling.MySQLConnectionPool( pool_name="carbon_cutting_pool", pool_size=5, pool_reset_session=True, **DB_CONFIG ) logger.info("[DB POOL] Connection pool initialized (pool_size=5)") except Exception as e: logger.error(f"[DB POOL ERROR] Failed to initialize pool: {e}", exc_info=True) dbpool = None def get_pooled_connection(): """풀에서 연결 획득""" if dbpool is None: raise RuntimeError("[DB POOL ERROR] Pool not initialized") conn = dbpool.get_connection() try: # DB 세션이 만료되거나 끊어진 경우 자동 재연결 시도 conn.ping(reconnect=True, attempts=3, delay=1) except Exception as e: logger.warning(f"[DB POOL] Ping/Reconnect failed: {e}") return conn