mysql对emoji的支持

步骤:

  1. 升级mysql数据库到5.5.3+

  2. 修改database、table和column字符集

     alter database DATABASE_NAME character set = utf8mb4 collate = utf8mb4_unicode_ci;
     alter table TABLE_NAME convert to character set utf8mb4 collate utf8mb4_unicode_ci;
     
     #修改表中类型为varchar、char等类型的列,长度或字符个数视情况而定。
     alter table TABLE_NAME change OLD_COLUMN_NAME NEW_COLUMN_NAME varchar(字符个数) character set utf8mb4 collate utf8mb4_unicode_ci;
    
  3. 修改mysql的配置文件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'
    
  4. 重新启动mysql数据库

     service mysql restart;
    
  5. 检查mysql数据库字符集

     show variables where variable_name like 'character_set_%' or variable_name like 'collation%';
    

    检查是否有如下输出:

     | Variable_name            		| Value                      		|
     |-----------------------------------------|-----------------------------------------|
     | 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_unicode_ci         	|
     | collation_database       	| utf8mb4_unicode_ci         	|
     | collation_server         		| utf8mb4_unicode_ci         	|
    
  6. 确认mysql-connector-java的版本,网上说只要大于5.1.13就可以,经过测试5.1.26不可以,但是最新版5.1.35(Mar 17, 2015版本)可以,其它版本未测试

  7. 检查服务器端的mysql数据库连接字符串,一定要包含charactorEncoding=utf8、useUnicode=true、autoReconnect=true等字段

     注:JDBC Connection String的具体配置可参见:http://dev.mysql.com/doc/connector-j/en/connector-j-reference-configuration-properties.html
    
  8. 导出数据库时,需要设置字符集为utf8mb4

    mysqldump --default-character-set=utf8mb4 用户名 密码 数据库名 > 文件名

posted on 2016-09-24 13:07  coderland  阅读(887)  评论(0编辑  收藏  举报

导航