sqlalchemy 使用pymysql链接mysql 1366错误

1、错误状况 mysql 5.7.2
\python35\lib\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)
今天在使用ORM连接数据库时遇到到了这个错误,使用的是sqlalchemy(mysql+pymysql)能够正常插入数据,无论是在mysql客户端SQL语句,仍是orm下,可是错误只有orm查询数据时给出。在网上看了不少,我自己数据库my.ini以下默认default-character-set=utf8 ,自己也不是插入中文出错
....... 
 # *** upgrade to a newer version of MySQL. [client] default-character-set=utf8 [mysqld] port=3306 basedir ="G:\mysql" ......
1.1 检查本身Mysql配置

my.ini 如上
你要确认本身字符编码还可使用命令
mysql> show variables like '%char%';
查看本身编码python

1.2 python的编码也为utf-8

 

2、问题所在

做者猜想多是Mysql驱动,之前在廖雪峰网站看mysql时廖雪峰网站mysql

有个操做:安装模块
pip install mysql-connector-python
本人亲测不建议加上参数--allow-external 直接pip安装
如下为原文:
sql

因为MySQL服务器以独立的进程运行,并经过网络对外服务,因此,须要支持Python的MySQL驱动来链接到MySQL服务器。MySQL官方提供了mysql-connector-python驱动,可是安装的时候须要给pip命令加上参数--allow-external:数据库

pip install mysql-connector-python--allow-external mysql-connector-python服务器

若是上面的命令安装失败,能够试试另外一个驱动:
pip install mysql-connectormarkdown

3、解决办法



第一步:

如上第一步命令行下安装模块:mysql-connector-python
pip install mysql-connector-python
或官网下载:
到MySQL官网下载并安装mysql-connector-python:https://dev.mysql.com/downloads/connector/python/

 

第二步:

将链接引擎的: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')
网络

就是将pymysql链接数据库换成了,官方的链接引擎!而后问题解决了!post

人生还有意义。那必定是还在找存在的理由
相关文章
相关标签/搜索