文档首页/ 云数据库 GaussDB(for MySQL)/ 故障排除/ SQL类/ 执行select * from sys.innodb_lock_waits报错
更新时间:2024-09-26 GMT+08:00
分享

执行select * from sys.innodb_lock_waits报错

场景描述

执行如下SQL时,得到的结果不符合预期。

select * from sys.innodb_lock_waits

报错信息如下:

执行失败,失败原因:(conn=14690848) Illegal mix of collations (utf8mb4_0900_ai_ci,IMPLICIT) and (utf8mb4_general_ci,IMPLICIT) for operation '='

原因分析

该报错通常出现在比较两个字符集编码不同的表、字段或数据库时。因为客户端连接时使用的字符集与数据库字符集不同导致报错。

解决方案

如果客户端使用了和数据库不同的字符集,需要调整客户端配置,使用相同的字符集连接数据库,或者在连上数据库后显式设置成对应的字符集,即可正常查询。

显式设置字符集的方法如下:

set collation_connection = utf8mb4_general_ci;

其中“utf8mb4_general_ci”为需要设置的字符集和排序规则。

当出现如下信息,表示字符集设置成功。

Query OK, 0 rows affected (0.00 sec)

相关文档