sqlalchemy 使用pymysql连接mysql 1366错误
Posted 酷酷的排球
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sqlalchemy 使用pymysql连接mysql 1366错误相关的知识,希望对你有一定的参考价值。
一、错误情况 mysql 5.7.2
使用ORM链接数据库时遇到到了这个错误,使用的是sqlalchemy(mysql+pymysql)可以正常插入数据,不管是在mysql客户端SQL语句,还是orm下,但是错误只有orm查询数据时给出。
site-packages\\pymysql\\cursors.py:166: Warning: (1366, "Incorrect string value: \'\\\\xD6\\\\xD0\\\\xB9\\\\xFA\\\\xB1\\\\xEA...\' for column \'VARIABLE_VALUE\' at row 480") result = self._query(query)
二、错误排查
1、拍查是否配置出错
查看数据库的编码格式:show variables like \'%char%\';
数据库my.ini如下默认default-character-set=utf8 ,本身也不是插入中文出错。
2、猜测MySQL驱动问题
pip install mysql-connector-python
本人亲测不建议加上参数--allow-external 直接pip安装
由于MySQL服务器以独立的进程运行,并通过网络对外服务,所以,需要支持Python的MySQL驱动来连接到MySQL服务器。
MySQL官方提供了mysql-connector-python驱动,但是安装的时候需要给pip命令加上参数--allow-external:
pip install mysql-connector-python--allow-external mysql-connector-python
如果上面的命令安装失败,可以试试另一个驱动:
pip install mysql-connector
三、解决方法:
1、如上第一步命令行下安装模块:mysql-connector-python pip install mysql-connector-python 或官网下载: 到MySQL官网下载并安装mysql-connector-python:https://dev.mysql.com/downloads/connector/python/
2、将连接引擎的:mysql+pymysql engine = create_engine("mysql+pymysql//user:password@host/{data_base}",encoding=\'utf-8\') 修改为:mysql+mysqlconnector engine = create_engine("mysql+mysqlconnector//user:password@host/{data_base}",encoding=\'utf-8\')
以上是关于sqlalchemy 使用pymysql连接mysql 1366错误的主要内容,如果未能解决你的问题,请参考以下文章
sqlalchemy 使用pymysql连接mysql 1366错误
使用 SQLAlchemy 和 pymysql,如何设置连接以使用 utf8mb4?
flask SQLAlchemy pymysql 连接数据库