以前我在寫一個Flask項目,而後運行models.py文件時,出現了一個Bug,就是這個:html
F:\book\lib\site-packages\pymysql\cursors.py:170: Warning: (1366, "Incorrect string value: '\\xD6\\xD0\\xB9\\xFA\\xB1\\xEA...' for column 'VARIABLE_VALUE' at row 481")
當時我找了不少資料都是說數據庫的編碼出了問題,讓我查看數據庫的編碼格式: 在查詢框內輸入:python
show variables like '%char%';
就出現這麼一大堆,可是都是utf8,記住utf8mb4是utf8的超集,也就是比它還能表示更多的字符如eimijo等,想更加了解的請點擊這裏:utf8mb4與utf8的區別 mysql
而後我又打開的mysql的安裝包,甚至查看了它的my.ini文件,不知道它在哪能夠點擊這裏:MySQL配置文件-my.ini,由於個人安裝目錄不在C盤,個人是這裏:sql
F:\mysql\mysql-5.7.21-winx64
打開my.ini文件,個人配置是這樣:數據庫
[mysqld] port = 3306 basedir=F:/mysql/mysql-5.7.21-winx64 datadir=F:/mysql/mysql-5.7.21-winx64/data max_connections=200 character-set-server=utf8mb4 default-storage-engine=INNODB sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES [mysql] default-character-set=utf8
也是沒有問題的!app
後來經過查找源代碼,才發現這是mysql5.7的一個Bug,可是咱們仍是能夠解決的!編碼
咱們以前的配置是:安裝pymysql,而後導入使用.net
import pymysql app.config["SQLALCHEMY_DATABASE_URI"] = "mysql+pymysql://帳號:密碼@localhost/appname"
如今咱們不用這個了,改用mysql-connector-python,你能夠點擊這裏到官網進行下載,而後在你虛擬環境下面的Lib進行安裝便可,也能夠在Pycharm中直接進行安裝。官網的地址請點擊這裏mysql-connector-python.code
而後配置以下:server
import mysql.connector app.config["SQLALCHEMY_DATABASE_URI"] = "mysql+mysqlconnector://帳號:密碼@localhost/appname"
而後再運行一下models.py文件,發現這個錯誤就沒有了!(前提是前面的數據庫表編碼格式已經修改正確了)
好了,本次的分享就到此爲止了,若有任何問題歡迎留言交流!!!