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