在 RDS 上运行的 MySQL 中为所有 Select 查询设置超时

vja*_*gra 5 mysql relational-database amazon-web-services

我想为 MySQL 服务器上的所有选择查询设置超时。因此,如果读取查询需要很长时间,那么我可以抛出超时异常。我知道 MySQL 5.7 中通过以下方式提供了此功能:

SET GLOBAL MAX_STATEMENT_TIME=1000;
Run Code Online (Sandbox Code Playgroud)

或者

SET GLOBAL MAX_EXECUTION_TIME=1000;
Run Code Online (Sandbox Code Playgroud)

但问题是 AWS RDS 中没有提供 MySQL 5.7。我在 RDS 上使用 MySQL 5.6。请告诉我在 5.6 中有没有其他方法可以做到这一点我是 mysql 和 RDS 的新手。请帮帮我。

Gam*_*ids 5

我知道这个问题是关于 MySQL v5.6.1 - 但也许这有助于其他访问者:您可以找出支持的版本/参数并像这样编辑它:

1)转到https://console.aws.amazon.com/rds/并在左侧菜单中选择“参数组”。

2)选择您用于数据库实例的参数组,然后在“参数组操作”下拉列表中选择“编辑”。

现在,根据您的数据库版本,该参数可能会被调用max_statement_time或在更高版本中调用max_execution_time

3)搜索这些参数之一,然后单击“编辑参数”。

请注意max_statement_time以秒和max_execution_time毫秒为单位。因此,如果您希望查询在 1 秒后终止:

 max_statement_time = 1
Run Code Online (Sandbox Code Playgroud)

或者

 max_execution_time = 1000
Run Code Online (Sandbox Code Playgroud)

当然,请阅读右栏中的说明以了解参数的作用。

4)然后设置你想要的新值。

5) “保存更改”并等待参数组应用于数据库实例(您可能必须选择“立即应用”或之后重新启动)。


And*_*gai 0

似乎 MySQL v5.7.4 中引入了设置 MAX_STATEMENT_TIME 的功能(http://mysqlserverteam.com/server-side-select-statement-timeouts/)。

这意味着任何使用 v5.6 的 RDS 实例将无法设置 MAX_STATEMENT_TIME。

截至本回复时,Amazon RDS 支持的最新版本是 5.6.23。

如果您希望在 Amazon 帐户上运行 MySQL v5.7.4,则应考虑设置 EC2 实例,而不是在其中安装 MySQL v5.7+,直到 Amazon 提供此版本的 MySQL。