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

时间:2015-08-10 07:08:56

标签: mysql amazon-web-services relational-database

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

SET GLOBAL MAX_STATEMENT_TIME=1000;

SET GLOBAL MAX_EXECUTION_TIME=1000;

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

3 个答案:

答案 0 :(得分:1)

我知道这个问题是关于MySQL v5.6.1 - 但这可能有助于其他访问者: 您可以找到支持的版本/参数,并按如下方式进行编辑:

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

2)选择用于数据库实例的参数组,然后在下拉菜单中选择#34;参数组操作"选择"编辑"。

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

3)搜索其中一个参数,然后点击"编辑参数"。

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

 max_statement_time = 1

 max_execution_time = 1000

可以肯定的是,请阅读右栏中的说明,了解参数的作用。

4)然后设置所需的新值。

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

答案 1 :(得分:0)

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

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

在回复时,Amazon RDS支持的最新版本为5.6.23。

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

答案 2 :(得分:0)

AWS现在提供MySQL 5.7.16。