老鹰506
(Ti D Ber Uhzt Tfx J)
1
【 TiDB 使用环境】测试环境
【 TiDB 版本】8.1.0
默认MySQL client登录之后
kfzdba@192.168.3.114:4000 11:43: [(none)] >SELECT @@character_set_database, @@collation_database, @@character_set_connection, @@collation_connection;
+--------------------------+----------------------+----------------------------+------------------------+
| @@character_set_database | @@collation_database | @@character_set_connection | @@collation_connection |
+--------------------------+----------------------+----------------------------+------------------------+
| utf8mb4 | utf8mb4_bin | utf8 | utf8_general_ci |
+--------------------------+----------------------+----------------------------+------------------------+
1 row in set (0.00 sec)
然后目标表的字符集是 ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci
目标表上目前有问题的字段的属性是 orderStatus varchar(30) COLLATE utf8mb4_general_ci NOT NULL DEFAULT '',
昨天重启TIDB server之前基于 orderStaus=‘xxxYyy’ 查询还是可以查到02-11及之前的数据。
但是今天查询就只能查询到 02-11当天的数据了。
如果在查询的时候 给where中的 orderStaus 指定排序集 collate utf8mb4_unicode_ci 就没有问题,可以查到预期的所有数据。
但是确认该表或者字段上的字符集排序集都没有修改过 。
大家有没有遇到过这样的问题呢
老鹰506
(Ti D Ber Uhzt Tfx J)
2
确认的是表及字段的字符集在重启前后都没有做过修改, 昨天是验证haproxy功能,TIDB配置添加 proxy-protocal.networks 参数然后reload了 tidb 角色, 之外都没有昨天其他变更操作
语句当中显示指定COLLATE = utf8mb4_unicode_ci 会出现问题吗?
老鹰506
(Ti D Ber Uhzt Tfx J)
6
显示指定 utf8mb4_unicode_ci 没有问题的。
奇怪的是 utf8mb4_general_ci 没有修改过,之前一直是好好的,就11号reload server之后开发反馈有问题,但是12新增的数据却能查询出来
1 个赞
做一个小的sql+demo,大家可以本地尝试,你这个描述太抽象。
1 个赞
Kongdom
(Kongdom)
10
确实,发一个可复现的demo看看,可以验证一下是不是版本问题。
system
(system)
关闭
12
此话题已在最后回复的 7 天后被自动关闭。不再允许新回复。