AWS MySQL连接经常超时

时间:2017-05-13 18:05:57

标签: mysql amazon-web-services amazon-rds

我在AWS(RDS)中有一个MySQL数据库,我通过命令从命令行连接到它:

mysql -u _usernme_ -p_mypassword_ -h  _aws_mysql_host_ _dbname_

连接正常,问题是,如果它保持空闲1-2分钟,连接就会死掉,后续命令就会挂起。我必须杀死这个过程并开始一个新的过程。

在我明确终止连接之前,我需要做哪些配置更改,以及在哪里继续保持活动,就像localhost一样?

3 个答案:

答案 0 :(得分:3)

您可以按如下方式找到相关的超时值:

SHOW VARIABLES LIKE '%_timeout';

您可能需要检查以确保wait_timeoutinteractive_timeout设置得足够好。两者都默认为28800(即8小时):

SET GLOBAL wait_timeout = 28800;
SET GLOBAL interactive_timeout = 28800;

答案 1 :(得分:2)

尝试从本地计算机连接到RDS时发生此错误,安全组仅允许从VPC内连接。

要解决此问题,请转到您的RDS安全组并允许特定的IP或任何人可以使用您的安全规则中的密码和user_name进行连接。

以下可以连接任何人

虽然这不是一个好习惯,但只是尝试连接RDS并跟踪问题

转到RDS实例

选择RDS实例并检入安全组的描述

enter image description here

选择安全组

选择入站规则

编辑安全规则

允许您的IP访问它或使其可公开访问

enter image description here

或者如果您认为RDS中发生此错误,您只需检查RDS的日志

即可

enter image description here

enter image description here

如果上述设置看起来很好,那么AWS会说

从Amazon EC2外部连接 - 防火墙超时问题

  

示例问题:

运行长查询(例如COPY命令)时,与数据库的客户端连接似乎挂起或超时。在这种情况下,您可能会发现Amazon Redshift控制台显示查询已完成,但客户端工具本身仍然显示正在运行查询。查询结果可能会丢失或不完整,具体取决于连接何时停止。

当您从Amazon EC2实例以外的计算机连接到Amazon Redshift时,会发生这种情况,并且在一段时间不活动后,空闲连接会被中间网络组件(如防火墙)终止。当您从虚拟专用网络(VPN)或本地网络登录时,此行为是典型的。

为避免这些超时,我们建议您进行以下更改:

  • 增加处理TCP / IP超时的客户端系统值。您 应该在用于连接的计算机上进行这些更改 你的集群。应为您的客户调整超时期限 和网络。请参阅更改TCP / IP超时设置。
  • (可选)在DSN级别设置保持活动行为。请参阅更改 DSN超时设置。

要进行这些更改,请检查链接

AWS:connecting-firewall-guidance.html

答案 2 :(得分:0)

请查看下面的屏幕截图,详细了解其修复方法。 enter image description here