修改租户sql_mode,新增ONLY_FULL_GROUP_BY后,ocp页面有报错

【 使用环境 】生产环境
【 OB or 其他组件 】ocp
【 使用版本 】4.3.5.1
【问题描述】通过ocp调整租户的sql_mode,新增ONLY_FULL_GROUP_BY后,ocp页面有报错

参考https://www.oceanbase.com/knowledge-base/oceanbase-database-1000000000210006?back=kb
应该是ocp连接ob进行相关命令执行时因为sql_mode被调整而报错。

针对此情况除了让应用在建立连接时指定sql_mode,ocp端能有相关优化吗?
【复现路径】问题出现前后相关操作
【附件及日志】推荐使用OceanBase敏捷诊断工具obdiag收集诊断信息,详情参见链接(右键跳转查看):

【SOP系列 22 】——故障诊断第一步(自助诊断和诊断信息收集)

【备注】基于 LLM 和开源文档 RAG 的论坛小助手已开放测试,在发帖时输入 [@论坛小助手] 即可召唤小助手,欢迎试用!

根据您的描述,您在通过 OCP 调整租户的 sql_mode 新增 ONLY_FULL_GROUP_BY 后遇到了错误,错误提示与非聚合列和 GROUP BY 子句有关。这类错误通常是因为 SQL 语句中选择了未在 GROUP BY 子句中出现的非聚合列。在这种情况下,数据库无法确定如何处理这些列中的值,因此抛出了错误。

为了更好地定位和解决问题,我们可以通过 obdiag 工具来收集相关信息。这里我们主要关注 SQL 相关的错误日志。

日志采集场景: SQL 执行出错
日志采集命令: obdiag gather scene run --scene=observer.sql_err --env “{db_connect=’-h127.0.0.1 -P2881 -utest@test -p****** -Dtest’, trace_id=‘Yxx’}”

请先执行上述命令,将生成的日志文件压缩包发送给我们。这将有助于我们进一步分析具体的 SQL 语句及其执行环境。

另外,为了确定具体的问题,请您提供以下信息:

  1. 具体的 SQL 语句是什么?
  2. 在添加 ONLY_FULL_GROUP_BY 之前,这条 SQL 语句是否能够正常执行?
  3. 您尝试执行该 SQL 语句的具体时间和上下文(例如,是在哪个应用程序或脚本中执行的)?
  4. 错误的完整报错信息是什么?

这些信息将帮助我们更准确地诊断并解决您的问题。感谢您的配合!

附上敏捷诊断工具 obdiag 使用帮助链接

ocp有些采集sql使用非严格模式,修改sql_mode导致异常。

已确认是已知缺陷,ocp兼容问题,后续版本会考虑排期修复。

1 个赞