使用utf8mb4字符集编码支持mysql的四字节字符串(表情符号)存储数据

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/dmt742055597/article/details/78998670

网上找了好多教程,但是没有明确的说明在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;



**********************只要思想不滑坡,办法总比困难多**********************




猜你喜欢

转载自blog.csdn.net/dmt742055597/article/details/78998670