mysql 支持emoj表情

检验是否支持
检测你的数据库版本 数据库版本需>=5.5.3版本 安装的是mysql下的个开源分支mariadb 版本10.0对应的是mysql版本5.6以上 支持
SHOW VARIABLES WHERE Variable_name LIKE ‘character_set_%’ OR Variable_name LIKE ‘collation%’;

查询结果 所有结果集utf8mb4
character_set_client    utf8mb4
character_set_connection    utf8mb4
character_set_database    utf8mb4
character_set_filesystem    binary
character_set_results    utf8mb4
character_set_server    utf8mb4
character_set_system    utf8
character_sets_dir    /usr/share/mysql/charsets/
collation_connection    utf8mb4_general_ci
collation_database    utf8mb4_unicode_ci
collation_server    utf8mb4_unicode_ci

如果不是
由于mysql所设置的字符集不支持utf8mb4导致
修改mysql server [window为my.ini]
改配置文件/mysql/bin/my.cnf
[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'

[先备份原数据 以应不测]
存在的数据库的字符集是utf8的 如果要支持utf8mb64则需要将已经存在的数据库 表 表字段类型修改成支持utf8mb64
执行数据库和表 字段的字符集sql
 

修改数据库字符集

ALTER DATABASE database_name CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci;

修改表的字符集

ALTER TABLE table_name CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

修改字段的字符集

ALTER TABLE table_name CHANGE column_name column_name VARCHAR(191) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;


[先备份原数据 以应不测]
如我这样操作的
ALTER DATABASE icms CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci;
ALTER TABLE icms_content_article_data CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
ALTER TABLE icms_content_article_data modify `content` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
ALTER TABLE icms_content_examplecode modify `content` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
ALTER TABLE icms_content_comment modify `content` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

表多的话有点麻烦