我想为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的新手。请帮帮我。
答案 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。