查询CLUSTER_PROCESSLIST视图info列为16进制

【 TiDB 使用环境】生产环境
【 TiDB 版本】Server version: 5.7.25-TiDB-v4.0.0
【复现路径】】
| information_schema | Query | 0 | 2 | 0x53454C454354202A2046524F4D20636C75737465725F70726F636573736C69737420776865726520696E666F206973206E6F74206E756C6C
【遇到的问题:问题现象及影响】
查询CLUSTER_PROCESSLIST视图info列为16进制,没有显示原始SQL

https://docs.pingcap.com/zh/tidb/stable/uuid#二进制存储

| INFO | binary(512) | YES | | NULL | |

4.0的文档上看,这个字段就是个binary(512).

hex_str=“53454C454354202A2046524F4D20636C75737465725F70726F636573736C69737420776865726520696E666F206973206E6F74206E756C6C”
byte_str=bytes.fromhex(hex_str)
str_result=byte_str.decode(“utf-8”)

print(str_result)

写了段python转换了一下这个16进制到utf-8字符串.
结果是

SELECT * FROM cluster_processlist where info is not null

不知道是否符合预期。

如果符合预期,考虑使用函数转换binary到utf-8 字符串

SELECT CONVERT(your_binary_column USING utf8) FROM your_table;

就可以了。

Current database: information_schema

±--------------------+
| @@version |
±--------------------+
| 5.7.25-TiDB-v4.0.16 |
±--------------------+
1 row in set (0.09 sec)
小版本号有差距,16就没有这个问题

1 个赞

这个复合预期

顺便提一句,考虑一下升级啊。

1 个赞