1. 程式人生 > >MySQL設定utf8mb4編碼

MySQL設定utf8mb4編碼

有一個專案需要儲存ios的表情(emoji表情)
這種表情雖然是utf8編碼,但是一個字元需要佔用4個位元組,而MySQL utf8編碼只能存放3位元組的字元。
在MySQL 5.6中,可以設定編碼為utf8mb4,這個字符集是utf8的超集。

首先,修改mysql的配置檔案
character_set_server=utf8mb4
然後重啟資料庫和中介軟體.
點選兩個測試的連結,檢視資料庫,發現數據成功插入。
不過還有三種方式可以設定字符集
1.不顯式設定字符集,繼承伺服器的配置

2.在執行SQL之前,執行set names 的查詢 (Query方式)

備註: mybatis-config.xml可以<property name="house-keeping-test-sql" value="set names utf8mb4"/> 

3.設定MySQL init_connect引數


經過測試各種因素的結果如下所示:
JDBC版本 普通中文 蘋果表情
伺服器utf8編碼 5.1.6     正常 插入報錯
5.1.6  Query 正常 正常
5.1.6  init_connect 正常 插入報錯
5.1.31 正常 插入報錯
5.1.31 Query 正常 正常
5.1.31 init_connect 正常 插入報錯
伺服器utf8mb4編碼
5.1.6 亂碼 亂碼
5.1.6  Query 亂碼 亂碼
5.1.6  init_connect 亂碼 亂碼
5.1.31 正常 正常
5.1.31 Query 正常 正常
5.1.31 init_connect 正常 正常
總結:
1.修改了character_set_server引數,需要重啟資料庫
2.使用高版本的JDBC