sqlalchemy 使用pymysql鏈接mysql 1366錯誤

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

人生還有意義。那必定是還在找存在的理由
相關文章
相關標籤/搜索