sqlalchemy 使用pymysql連接mysql 1366錯誤


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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM