AWS Aurora MySQL 5.7升级后max_execution_time配置未生效问题咨询
Aurora MySQL 5.7升级后max_execution_time配置未生效原因及解决方案
核心原因
你遇到的是MySQL 5.7版本+ODBC 8.0驱动的常见参数优先级问题,具体根因如下:
- MySQL中
max_execution_time参数的会话级配置优先级高于全局配置,你在AWS参数组中设置的是全局默认值,只要连接建立后会话级被修改,全局配置就不会生效。 - MySQL ODBC 8.0 ANSI Driver默认会在建立连接时自动设置会话级
max_execution_time = 60000(单位微秒,对应60秒),而Aurora MySQL 5.6版本原生不支持该参数,所以升级前驱动不会触发这个默认设置,升级后才会出现60秒超时的问题,和你碰到的现象完全吻合。
验证方法
你可以通过Excel的执行逻辑先跑一条测试语句,确认会话级参数值:
SHOW VARIABLES LIKE 'max_execution_time';
如果返回值为60000,即可确认是驱动自动修改了会话级参数导致的问题。
解决方案
可以任选以下一种方式修复:
- 修改ODBC数据源配置:在ODBC数据源的高级连接参数中添加
DEFAULT_MAX_EXECUTION_TIME=0,即可禁用驱动的默认超时设置,使用全局参数组配置的超时值。 - 执行长查询前主动设置会话级参数:每次执行长查询前先运行语句
SET SESSION max_execution_time = 300000000;(300000000微秒对应5分钟,可按需调整),该配置优先级最高,会覆盖所有默认设置。 - 全局批量配置:如果所有业务连接都需要大超时,可在AWS参数组中修改
init_connect参数值为SET max_execution_time = 1000000000,注意该配置仅对非SUPER权限的连接用户生效。
内容的提问来源于stack exchange,提问作者jaymoore74
相关产品推荐
相关产品推荐

