Python3.6+mysql-connector2.1.6创建连接池报AttributeError求助
我之前在macOS High Sierra上用Python 3.6搭配mysql-connector 2.1.6做连接池的时候也踩过坑,结合你的情况,给你几个针对性的排查和解决方向:
检查dbconfig参数的完整性与正确性
连接池构造器依赖的dbconfig必须包含所有必要的连接参数,而且参数名不能写错。比如要确保包含host、user、password、database这些核心键,别把user写成username,password写成pwd。正确的示例应该是:dbconfig = { "host": "127.0.0.1", "user": "你的数据库用户名", "password": "你的数据库密码", "database": "要连接的数据库名" }升级mysql-connector到兼容版本
mysql-connector 2.1.6和Python 3.6在macOS环境下存在一些兼容性bug,建议升级到2.2.9版本——这个版本是2.x系列里对Python 3.6支持最稳定的版本之一。执行下面的命令升级:pip3 install --upgrade mysql-connector-python==2.2.9规避系统权限问题
macOS High Sierra对系统级Python目录(比如你提到的/Library/Frameworks/Python.f...)的权限限制比较严格,可能导致connector无法正确加载依赖库。推荐用虚拟环境隔离依赖:# 创建虚拟环境 python3 -m venv mysql_pool_env # 激活虚拟环境 source mysql_pool_env/bin/activate # 在虚拟环境里安装适配版本的connector pip install mysql-connector-python==2.2.9之后在这个虚拟环境里运行你的代码,就能避开系统权限的坑。
排查MySQL服务器配置
有时候问题出在MySQL端:检查你的MySQL配置文件(my.cnf或my.ini),确保bind-address设置为127.0.0.1或者0.0.0.0(允许本地TCP连接),而不是仅设置为localhost(可能会强制走socket连接,连接池可能不兼容这种方式)。另外也要确认MySQL服务是正常运行的,且你的账号有本地连接权限。添加异常捕获定位具体错误
你给出的Traceback不完整,建议给代码加上异常捕获,打印具体的错误信息,这样能更精准地定位问题:import mysql.connector from mysql.connector import pooling dbconfig = { # 这里填你的连接参数 "host": "127.0.0.1", "user": "root", "password": "your_password", "database": "test_db" } try: cnxpool = pooling.MySQLConnectionPool(pool_name="mypool", pool_size=3, **dbconfig) print("连接池创建成功!") except mysql.connector.Error as err: print(f"具体错误信息: {err}")
内容的提问来源于stack exchange,提问作者Joe Massive

