MySQL中支援emoji表情的儲存(親測可用)

2021-10-07 03:20:28 字數 2401 閱讀 6946

mysql的utf8編碼的乙個字元最多3個位元組,但是乙個emoji表情為4個位元組,所以utf8不支援儲存emoji表情。但是utf8的超集utf8mb4乙個字元最多能有4位元組,所以能支援emoji表情的儲存。下面介紹了關於如何修改mysql資料庫的編碼格式變為utf8mb4的具體方法。

linux系統中mysql的配置檔案為my.cnf。(注:有空把mysql預設編碼改為utf8的實現過程也記錄下來)

winows中的配置檔案為my.ini。

[client]

default-character-set=utf8mb4

[mysqld]

character-set-client-handshake = false

character-set-server = utf8mb4

collation-server = utf8mb4_unicode_ci

init_connect=』set names utf8mb4』

[mysql]

default-character-set=utf8mb4

修改完畢之後,通過wq儲存退出

2.修改database/table和column的字符集

進入mysql中,按下述所示進行命令的執行:

1) 修改database的字符集:

alter database 資料庫名 character set = utf8mb4 collate = utf8mb4_unicode_ci;

示例:alter database ***db character set = utf8mb4 collate = utf8mb4_unicode_ci;

2) 步驟1)執行完成之後,需要執行use 資料庫名,指明當前需要進行字符集修改的資料庫;示例:use ***db;

3)修改table的字符集:

alter table 表名 convert to character set utf8mb4 collate utf8mb4_unicode_ci;

示例:alter table user_comments convert to character set utf8mb4 collate utf8mb4_unicode_ci;

4) 修改column的字符集:

alter table 表名 change 欄位名 欄位名 該欄位原來的資料型別 character set utf8mb4 collate utf8mb4_unicode_ci;

示例:alter table user_comments change content content text character set utf8mb4 collate utf8mb4_unicode_ci;

上述修改完畢,exit退出mysql

3.重啟mysql

這裡重啟的時候我一開始用的是service mysql restart,最後發現這條命令並不管用,重啟沒有成功,導致後面檢視字符集的時候,並沒有達到想要的字符集的狀態。

所以採用下面的方法才可以正確的重啟mysql.

3.1停止msql的執行

通過/etc/init.d/mysql執行stop命令

3.2啟動mysql

通過/etc/init.d/mysql執行start命令

4.檢查字符集:

進入mysql中,用show variables where variable_name like 『character_set_%』 or variable_name like 『collation%』;命令檢視字符集的情況

上述步驟實現之後便可成功使用emoji表情儲存進mysql資料庫的功能了。

由於mysql資料庫是需要備份和還原的,所以帶有emoji表情的.sql檔案的匯入和匯出的時候需要注意執行時的編碼格式,以下為匯入與匯出的具體操作:

5.帶有emoji表情的sql檔案的匯入與匯出(主要為windows中的匯出)

(若是在服務端的**中的匯出為:mysqldump –default-character-set-utf8mb4 –u 使用者名稱 –p 資料庫名 > 匯出該檔案的物理路徑;匯入的命令不需要指明編碼格式,只需要正常的執行命令便可)

5.1匯出

在進行把字尾名為.sql的檔案,且檔案資料中包含emoji表情的資料,進行備份匯出的時候,此時不要使用第三方軟體進行匯出,而是使用命令列的形式執行該匯出動作,其主要原因是使用第三方匯出該檔案時,由於其預設的匯出的編碼格式為utf-8,該編碼格式最多隻支援3個位元組,而乙個emoji表情有4個位元組,這將導致emoji表情的資料變成亂碼。所以在本地匯出的時候具體操作步驟如下:

一、 開啟cmd,先找到mysqldump這個執行檔案所在的路徑;

二、 在路徑後輸入mysqldump –default-character-set-utf8mb4 –u 使用者名稱 –p 資料庫名 > 匯出該檔案的物理路徑,按「enter」,即可完成匯出功能,在匯出的物理路徑中即可找到已被匯出的該檔案。

Mysql支援emoji表情

教程所示使用的是 github 倉庫,網速過慢的朋友請 原文 mysql 支援 emoji 表情。更多討論或者錯誤提交,也請移步。最近為部落格新增了emoji表情,所以需要資料庫支援utf8mb4編碼。伺服器安裝的資料庫是mysql 5.7。網上很多方法是通過命令列設定字符集編碼格式,但是經過嘗試,...

Mysql支援emoji表情

教程所示使用的是 github 倉庫,網速過慢的朋友請 原文 mysql 支援 emoji 表情。更多討論或者錯誤提交,也請移步。伺服器安裝的資料庫是mysql 5.7。網上很多方法是通過命令列設定字符集編碼格式,但是經過嘗試,都以失敗告終。摸索後發現,需要更改mysql的配置檔案。首先,備份原來的...

Mysql支援emoji表情儲存

正常使用uft 8方式儲存是不能儲存emoji表情文字的,主要原因是uft8位元組不夠,導致儲存不了,需要更改為uft8mb4,下面說說具體操作步驟 1 需要你的mysql資料庫版本在5.5以上 2 更改你的資料庫,表,以及需要儲存emoji列的編碼方式 對每乙個資料庫 alter database...