在过去的6个月里,我有一个Rails应用程序在生产中运行,每周部署一次,没有任何问题。
现在,我已经有一个反复出现的问题大约3周了,而且似乎每周都在变得更糟。当我的应用程序启动并到达尝试连接到数据库的点时,我收到以下错误:
Can't connect to MySQL server on '***.amazonaws.com' (110) (Mysql2::Error)
AFAIK,这个错误告诉我已经达到了MySQL的最大连接数限制。
从配置中,我应该能够打开296个连接。我的应用程序设置为运行7个实例,每个实例的数据库连接池为5个,因此在部署新实例时不能超过70个连接
我想为命中MySQL服务器的所有select查询设置超时。因此,如果读取查询花费了很长时间,那么我可以抛出一个超时异常。我知道这个特性在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的新手。请帮帮我。
我对boto3服务员的用法感到困惑。我希望停止处于可用状态的rds实例。在停止之前,我需要做一些修改( MultiAZ将实例部署到none)。因此,我希望等到实例被修改并处于可用状态。如何通过this.Here是我的脚本:
import boto3
client = boto3.client('rds')
dbmultiAZ=[]
def lambda_handler(event,context):
response=client.describe_db_instances()
for i in response['DBInstances']: