keithyzk
(Keithyzk)
1
为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
- 【TiDB 版本】:v4.0.5
- 【问题描述】:已经开启了
new_collations_enabled_on_first_bootstrap
参数,请问如何设置默认的排序规则 为utf8_general_ci
。
我们要将 500 多个表恢复到新搭的 v4.0.5 tidb 集群中。SQL文件中,表结构没有指定排序规则, 我们想恢复过去的表的排序规则都为 utf8_general_ci
排序规则 ,但我尝试多次,通过 set global collation_database = utf8_general_ci
并不生效,所以请问下 ,如何修改默认排序规则。感谢~
若提问为性能优化、故障排查类问题,请下载脚本运行。终端输出的打印结果,请务必全选并复制粘贴上传。
yilong
(yi888long)
2
keithyzk
(Keithyzk)
3
CHARACTER SET charset_name
和 COLLATE collation_name
都未指定
麻烦看下我下边的测试, 我通过 set global variables
设定了字符集和排序规则
但是我在创建没有指定字符集和排序规则的表和库的时候,依然没有使用默认的 utf8_general_ci
排序规则
QBin
(Bin)
4
- 能够复现问题,我们这边先排查下原因。可以先通过指定 database 的 default collation 来暂时绕过这个问题,下面是例子:
MySQL [(none)]> create database t2 default collate utf8mb4_general_ci;
Query OK, 0 rows affected (0.01 sec)
MySQL [(none)]> show create database t2;
+----------+-------------------------------------------------------------------------------------------+
| Database | Create Database |
+----------+-------------------------------------------------------------------------------------------+
| t2 | CREATE DATABASE `t2` /*!40100 DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci */ |
+----------+-------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)
MySQL [(none)]> use t2;
Database changed
MySQL [t2]> create table tt (t1 bigint,c1 varchar(10));
Query OK, 0 rows affected (0.01 sec)
MySQL [t2]> show create table tt;
+-------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Table | Create Table |
+-------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| tt | CREATE TABLE `tt` (
`t1` bigint(20) DEFAULT NULL,
`c1` varchar(10) COLLATE utf8mb4_general_ci DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci |
+-------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)
keithyzk
(Keithyzk)
5
好的,非常感谢~ 那我们要在 tidb-lightning 恢复之前,就要创建好 database 指定 collation .
请问,为什么我这个版本测试好像不支持,是还有什么特殊设置吗?