Mysql 字符集和排序规则 - UTF8mb4 520

Mysql character set and collations - UTF8mb4 520

问题:由于缺少排序规则,mysqldump 将无法导入

1273 - Unknown collation: 'utf8mb4_unicode_520_ci'

Mysql 服务器是(来自 phpMyAdmin):

Server version: 5.5.40 - MySQL Community 
Server charset: UTF-8 Unicode (utf8)
Database client version: libmysql - 5.0.95

这是 centos 5.11 服务器。

mysql> show variables where Variable_name like 'character\_set\_%' or Variable_n                            ame like 'collation%';
+--------------------------+-----------------+
| 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            |
| collation_connection     | utf8_general_ci |
| collation_database       | utf8_general_ci |
| collation_server         | utf8_general_ci |
+--------------------------+-----------------+
10 rows in set (0.00 sec)

我的本地服务器 (xampp) 有

> Server version: 10.1.9-MariaDB - mariadb.org binary distribution
> Server charset: UTF-8 Unicode (utf8)  Database client version:
> libmysql - mysqlnd 5.0.11-dev - 20120503 - $Id:
> 3c688b6bbc30d36af3ac34fdd4b7b5b787fe5555 $

这导入很好。 查看导入的最终表,我发现所有表的排序规则都是 utf8mb4_unicode_ci。 当我上传到 public 服务器

时,也会发生同样的情况(即作为正确导入的本地文件)
Server version: 5.6.29 - MySQL Community Server (GPL)
Database client version: libmysql - 5.1.73

为什么我的本地数据库可以处理 520 排序规则而 centos box 不能?

任何正确方向的指示都将受到赞赏。所有上传都通过 phpMyAdmin 执行,符合上述规范。 我知道我可以 'update' SQL 转储并删除“520”引用并替换为 utf8mb4_unicode_ci 但是如果你每次都必须这样做,那不是很经济。

utf8mb4_unicode_520_ci 直到 MySQL 5.6 才被引入,所以你的 CentOS 盒子上的旧 5.5 版本可以解释为什么你没有它。