一、錯誤情況 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%';` 查看自己編碼
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:password@host/{data_base}",encoding='utf-8') 修改為:
mysql+mysqlconnector engine = create_engine("
mysql+mysqlconnector//user:password@host/{data_base}",encoding='utf-8')
就是將pymysql連接數據庫換成了,官方的連接引擎!然后問題解決了!