报错信息:Warning: (1366, "Incorrect string value: ‘\\xD6\\xD0\\xB9\\xFA\\xB1\\xEA...‘ for column ‘VARIABLE_VALUE‘ at row 484") result = self._query(query)
python中操作MySQL数据库的适配器主要有两个:
-
一是MySQLdb(即MySQL-Python): 封装了MySQL C驱动的Python驱动器;
-
另一个是mysql-connector:MySQL官方的纯Python驱动器
两者用法类似,但是在Python v3.x中,不再支持MySQLdb,但仍然支持mysql-connector,所以这里我们就以mysql-connector为例进行学习。
直接使用pip来安装mysql-connector模块:
pip install mysql-connector
import mysql.connector
def set_conn(self):
db_url = 'mysql+mysqlconnector://{}:{}@{}:{}/{}'.format(db_username,db_password,db_host,
db_port,db_name)
self.engine = create_engine(db_url,
echo=False, # 启用它后,我们将看到所有生成的SQL
echo_pool=False, # 连接池将记录信息输出
max_overflow=5, # 超过连接池大小外最多创建的连接
pool_size=5, # 连接池要保持打开状态的连接数
pool_timeout=30, # 池中没有线程最多等待的时间,否则报错
pool_recycle=-1 # 多久之后对线程池中的线程进行一次连接的回收(重置)
)
self.DbSession = sessionmaker(bind=self.engine)