设置mysql的编码格式为utf8mb4可以兼容更多的字符,表情等,同时也包含了utf8字符编码。
设置编码格式为utf8mb4,通过show variables like 'character%'查询系统的编码格式
mysql> show variables like 'character%';+--------------------------+---------------------------------------+| Variable_name | Value |+--------------------------+---------------------------------------+| character_set_client | utf8 || character_set_connection | utf8 || character_set_database | latin1 || character_set_filesystem | binary || character_set_results | utf8 || character_set_server | latin1 || character_set_system | utf8 || character_sets_dir | /opt/mysql/server-5.6/share/charsets/ |+--------------------------+---------------------------------------+
通过如下sql设置编码
set character_set_client=utf8 ;set character_set_connection=utf8 ;set character_set_database=utf8 ;set character_set_database=utf8 ;set character_set_results=utf8 ;set character_set_server=utf8 ;set character_set_system=utf8 ;
还需要修改mysql根目录下的配置文件my.ini文件,特别是client的编码格式,设置后客户端传入的字符编码格式才是utf8mb4。
[client]default-character-set = utf8mb4[mysql]default-character-set = utf8mb4[mysqld]character-set-client-handshake = FALSEcharacter-set-server = utf8mb4collation-server = utf8mb4_unicode_ciinit_connect='SET NAMES utf8mb4'
本机查询的结果:
客户端查询到的结果
可以看到客户端查询的结果是client和connnection的编码格式为utf8,但这并不影响使用。
值得注意的是表的编码格式从图形化界面中更改是没用的,需要在创建时设置编码格式是utf8mb4,如果已经有数据那么就备份后重新建表,创建时候就设置编码为utf8mb4。