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 版本可以解释为什么你没有它。
问题:由于缺少排序规则,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 版本可以解释为什么你没有它。