sqlalchemy 使用pymysql连接mysql 1366错误

Posted ExplorerMan

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sqlalchemy 使用pymysql连接mysql 1366错误相关的知识,希望对你有一定的参考价值。

一、错误情况 mysql 5.7.2
python35libsite-packagespymysqlcursors.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%‘;
查看自己编码

1.2 python的编码也为utf-8

 

二、问题所在

作者猜测可能是Mysql驱动,以前在廖雪峰网站看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

三、解决办法



第一步:

如上第一步命令行下安装模块: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:[email protected]/{data_base}",encoding=‘utf-8‘)
修改为:mysql+mysqlconnector
engine = create_engine("mysql+mysqlconnector//user:[email protected]/{data_base}",encoding=‘utf-8‘)

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

以上是关于sqlalchemy 使用pymysql连接mysql 1366错误的主要内容,如果未能解决你的问题,请参考以下文章

sqlalchemy 使用pymysql连接mysql 1366错误

sqlalchemy和pymysql连接mysql的方法

使用 SQLAlchemy 和 pymysql,如何设置连接以使用 utf8mb4?

flask SQLAlchemy pymysql 连接数据库

python操作mysql(pymysql + sqlalchemy)

python学习之pymysql和sqlalchemy