一、錯誤情況 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')