小哲豆腐花
2025 年9 月 29 日 15:33
#1
【 使用环境 】生产环境
【 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 的论坛小助手已开放测试,在发帖时输入 [@论坛小助手 ] 即可召唤小助手,欢迎试用!
论坛小助手
2025 年9 月 29 日 15:33
#3
根据您的描述,您在通过 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 语句及其执行环境。
另外,为了确定具体的问题,请您提供以下信息:
具体的 SQL 语句是什么?
在添加 ONLY_FULL_GROUP_BY 之前,这条 SQL 语句是否能够正常执行?
您尝试执行该 SQL 语句的具体时间和上下文(例如,是在哪个应用程序或脚本中执行的)?
错误的完整报错信息是什么?
这些信息将帮助我们更准确地诊断并解决您的问题。感谢您的配合!
附上敏捷诊断工具 obdiag 使用帮助链接
秃蛙
2025 年9 月 29 日 16:12
#4
ocp有些采集sql使用非严格模式,修改sql_mode导致异常。
已确认是已知缺陷,ocp兼容问题,后续版本会考虑排期修复。
1 个赞