最近在一次MySQL数据迁移的过程中遭遇了字符集的问题,提示为”Character set ‘utf8mb4’ is not a compiled character set”。即是字符集utf8mb4不是一个编译的字符集以及没有在Index.xml文件里指定。下面是其处理过程及解决办法,供大家参考。
     1、错误提示
     
     SHELL> mysqlbinlog –database=bs_salary –stop-datetime=”2014-12-15 8:24:48″ /home/robin/mysql-bin.000399 \
     
     > |mysql -uroot -p –force –database=salary_1215
     
     mysql: Character set ‘utf8mb4’ is not a compiled character set and is not specified in the ‘/usr/share/mysql/charsets/Index.xml’ file
    
     2、分析与解决
     
     
      a、错误分析
      
     
     从给出的错误提示来看,说utf8mb4字符集未被编译,而事实上这个字符集根本没有用到。
     
     其次说这个文件里/usr/share/mysql/charsets/Index.xml未指定utf8mb4字符集,需要检查字符集目录设置。
    
     
      b、字符集检查
      
     
     首先检查了新旧环境的字符集设置,两边都为UTF8,如下
     
     mysql> show variables like ‘%char%’;
     
     +————————–+———————————+
     
     | Variable_name            | Value                           |
     
     +————————–+———————————+
     
     | character_set_client     | utf8                            |
     
     | character_set_connection | utf8                            |
     
     | character_set_database   | utf8                            |
     
     | character_set_filesystem | binary                          |
     
     | character_set_results    | utf8                            |
     
     | character_set_server     | utf8                            |
     
     | character_set_system     | utf8
    
 
