本人 python+django+MySQL 環(huán)境
類似 Incorrect string value: '\xF4\x8F\xAE\xB3 ?這樣的錯(cuò)誤
首先通過(guò) ?show variables like'%char%' ?命令,查看mysql配置的編碼
show variables like'%char%'
下面是我的mysql編碼狀態(tài),這些根據(jù)目前本人的知識(shí)量最好是 utf8編碼,我的mac機(jī)器安裝的時(shí)候character_set_server 是latin1格式的,所以必須要改一下編碼格式

更改server 編碼,其他類似
1.關(guān)閉本機(jī)MySQL服務(wù)
1)通過(guò)系統(tǒng)偏好設(shè)置 ?停止 MySQL 服務(wù)或者通過(guò)代碼
sudo /usr/local/mysql/support-files/mysql.server stop ?
2.修改mysql配置文件 /etc/my.cnf
有些MySQL版本中沒(méi)有my-medium.cnf 這個(gè)文件而是my-default.cnf
sudo cp /usr/local/mysql/support-files/my-medium.cnf /etc/my.cnf? (復(fù)制my-default.cnf 到 /etc/my.cnf)
sudo vi /etc/my.cnf
[client]部分加入:
default-character-set=utf8
[mysqld]部分加入:
character-set-server=utf8
通過(guò)vi 修改.cnf文件后不要忘了 wq 保存修改
3.重啟MySQL服務(wù)
cd? ? /usr/local/mysql/bin? (進(jìn)入目錄)
sudo su ? (獲取權(quán)限)
./mysqld_safe --skip-grant-tables & (重啟服務(wù)器)
control+D ? (退出當(dāng)前編輯模式)
4.刪除之前的數(shù)據(jù)庫(kù)
很多朋友可能和我一樣修改完上面的.cnf文件后,以為就ok了,但是還是一樣的錯(cuò)誤
這是需要把之前的數(shù)據(jù)庫(kù)刪除,當(dāng)然數(shù)據(jù)還是要自己保留一下的
drop database <數(shù)據(jù)庫(kù)名>
5.重新創(chuàng)建UTF-8編碼的數(shù)據(jù)庫(kù)
CREATE DATABASE <數(shù)據(jù)庫(kù)名稱> DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
6.Django 同步數(shù)據(jù)庫(kù)
先注釋掉 admin.py ?models.py ?所有model,執(zhí)行下面代碼,然后把注釋掉的代碼取消,再重新執(zhí)行下面代碼
python3 manage.py makemigrations
python3 manage.py migrate
7. 登陸Django ?admin 后臺(tái)
插入中文字符成功,到此結(jié)束