使用utf8mb4字符集編碼支持mysql的四字節字符串(表情符號)存儲數據

網上找了好多教程,但是沒有明確的說明在linux中my.cnf是添加還是修改,剛開始修改不成功,最後是添加了一些必須內容才成功的,遂記錄下來。

操作系統:CentOS7.2

mysql版本:5.7.17

1.修改my.cnf

vi /etc/my.cnf
網上說在這裏面有[client][mysql]但是我的沒有,只有[mysqld],剛開始只修改了mysqld下面的內容,沒起作用,所以我大膽的嘗試了一下,在my.cnf裏面添加[client][mysql],如果你的my.cnf裏沒有這些,那就大膽地添加吧,親測可用。

[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'
[mysqld]肯定存在,但是注意這四行內容添加位置,最好在[mysqld]這個模塊的末尾處,因爲我在[mysqld]下一行添加的時候重啓mysql報錯了,放在這一模塊末尾處可以正常啓動mysql。


[mysql]
default-character-set=utf8mb4
這個可能也不存在,所以在文件末尾處添加上面兩行,有則修改。

 上圖:


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

重啓mysql:

/etc/init.d/mysqld restart

上面完成之後,修改數據庫、數據表。必要字段均支持utf8mb4字符編碼格式。

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

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

1) 修改database的字符集:

ALTER DATABASE 數據庫名 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci;

示例:

ALTER DATABASE xxxdb CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci;

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

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;



**********************只要思想不滑坡,辦法總比困難多**********************




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章