在mysql中插入emoji表情

平時采用的都是utf8編碼,每個字符三個字節,現在要把4個字節的emoji表情插入數據庫。

那就把數據庫的默認字符集改掉,改成utf8的超集utf8mb4。
image.png

版本需要 >= MySQL 5.5.3版本、從庫也必須是5.5的了、低版本不支持這個字符集、復制報錯

分三個步驟:
第一步,修改mysql數據庫的配置文件,使用新的字符集。
linux:my.cnf;windows:my.ini

找到對應位置,添加如下配置:
[client]
default-character-set=utf8mb4

[mysql]
default-character-set=utf8mb4

[mysqld]
character-set-client-handshake=FALSE
character-set-server=utf8mb4
collation-server=utf8mb4_unicode_ci
init_connect='SET NAMES utf8mb4'

第二步:修改數據庫、表、字段的字符集。
ALTER DATABASE 數據庫名 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci;
ALTER TABLE 表名 CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
ALTER TABLE 表名 CHANGE 字段名 字段名 VARCHAR(實際長度) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
注意那個字段名就是寫兩遍。

第三步:服務器連接數據庫 Connector/J的連接參數中,不要加characterEncoding參數。 不加這個參數時,默認值就時autodetect。

jdbc.url=jdbc:mysql://{maven.jdbc.host}:{maven.jdbc.port}/${maven.jdbc.db}?useUnicode=true&autoReconnect=true&rewriteBatchedStatements=TRUE

第四步:重啟mysql

附上一些命令

查看數據庫使用的字符集
SHOW VARIABLES WHERE Variable_name LIKE 'character_set_%' OR Variable_name LIKE 'collation%';

查看數據庫版本
SELECT VERSION();

查看表的字段使用的字符類型
SHOW FULL FIELDS FROM 表名

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容