【发布时间】:2017-05-07 21:55:01
【问题描述】:
我正在使用 mariadb(“10.1.20-MariaDB-1~trusty”)和 utf8mb4。现在我正在将所有表转换为“row_format = dynamic”和表排序规则“utf8mb4_unicode_ci”。我注意到我的数据库中有一些流氓表仍然有“utf8mb4_general_ci”作为排序规则,比如这个:
使用数据库;
在 COLLATION != "utf8mb4_unicode_ci"; 处显示表状态;
| Name | Engine | Version | Row_format | Rows | Avg_row_length | Data_length | Max_data_length | Index_length | Data_free | Auto_increment | Create_time | Update_time | Check_time | Collation | Checksum | Create_options | Comment |
+----------------------------+--------+---------+------------+------+----------------+-------------+-----------------+--------------+-----------+----------------+---------------------+-------------+------------+--------------------+----------+--------------------+---------+
| table | InnoDB | 10 | Dynamic | 5 | 3276 | 16384 | 0 | 32768 | 0 | NULL | 2016-12-21 21:12:18 | NULL | NULL | utf8mb4_general_ci | NULL | row_format=DYNAMIC |
那么我当然会运行这样的东西:
ALTER TABLE table CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
这将在没有错误的情况下完成。之后再次检查表状态,仍然显示
排序规则 = utf8mb4_general_ci
为那张桌子。
将同一个数据库转储并导入我的本地 5.6.32-78.0 Percona 服务器并在那里执行相同操作将导致表排序规则根据需要转换为 utf8mb4_unicode_ci。
有人知道这可能是什么原因吗?
【问题讨论】:
标签: mysql mariadb type-conversion collation utf8mb4