合规国际互联网加速 OSASE为企业客户提供高速稳定SD-WAN国际加速解决方案。 广告
表的编码为 `DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;` 登录mysql,创建表时报错 `ERROR 1115 (42000): Unknown character set: 'utf8'` 可以看出,因为没有"utf8"字符编码所以报错。 查看mysql编码 ``` MySQL [(none)]> show variables like '%character%'; +--------------------------+----------------------------+ | 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 | utf8mb4' | | character_sets_dir | /usr/share/mysql/charsets/ | +--------------------------+----------------------------+ 8 rows in set (0.00 sec) ``` 其中character_set_system=utf8mb4',这个编码很奇怪,查看mysql是否支持这个编码,执行 show character set ![](https://img.kancloud.cn/c8/22/c822a1185a1b7a6a0ff65c7fdd0a1824_829x767.png) 发现utf8mb4'编码的collation为utf8_general_ci,其实这就是utf8的校对方法。所以是字符集的命名错误,那么修改字符集的命名。 通过`show variables like 'character_sets_dir';`查看字符集的配置目录 ``` MySQL [(none)]> show variables like 'character_sets_dir'; +--------------------+----------------------------+ | Variable_name | Value | +--------------------+----------------------------+ | character_sets_dir | /usr/share/mysql/charsets/ | +--------------------+----------------------------+ 1 row in set (0.00 sec) ``` 进入字符集的配置目录,修改Index.xml ``` [root@mysqlnode1 charsets]# cd /usr/share/mysql/charsets/ [root@mysqlnode1 charsets]# vi Index.xml ``` 根据collation找到相应位置,修改 `<charset name="utf8mb4'">` 为 `<charset name="utf8">` 重启数据库,查看编码