我有一个 MySQL 数据库在 AWS(RDS),我通过这个命令从命令行连接到它:
mysql -u _usernme_ -p_mypassword_ -h _aws_mysql_host_ _dbname_
它连接良好,问题是,如果它保持空闲 1-2 分钟,连接死亡,后续命令只是挂起。
我需要做什么配置更改,以及在哪里,以便它永远保持活动状态,就像localhost
一样,直到我明确终止连接?
当尝试从本地计算机连接到 RDS 并且安全组仅允许从 VPC 内连接时,会发生此错误。
要解决此问题,请转到您的 RDS 安全组,并允许特定 IP 或任何人都可以使用安全规则中的密码和 user_name 进行连接。
可以连接任何人
虽然这不是很好的做法,只是尝试与 RDS 连接并跟踪问题
转到 RDS 实例
选择 RDS 实例,并检查安全组的描述
选择安全组
选择入站规则
编辑安全规则
允许您的 IP 访问它或使其可公开访问
或者,如果您认为此错误发生在 RDS 中,则可以简单地检查 RDS 的日志
如果上面的设置看起来很好,那么 AWS 说
从 Amazon EC2 外部连接-防火墙超时问题
示例问题:
在运行长查询(如 COPY 命令)时,您与数据库的客户端连接似乎挂起或超时。在这种情况下,您可能会看到 Amazon Redshift 控制台显示查询已完成,但客户端工具本身似乎仍在运行查询。查询结果可能丢失或不完整,具体取决于连接停止的时间。
当您从 Amazon EC2 实例以外的计算机连接到 Amazon Redshift 时,会发生这种情况,并且空闲连接在一段时间不活动后被中间网络组件(如防火墙)终止。当您从虚拟专用网络 () 或本地网络登录时,这种行为很常见。
为避免这些超时,我们建议进行以下更改:
增加处理 TCP / IP 超时的客户端系统值。应在用于连接到群集的计算机上进行这些更改。应根据客户端和网络调整超时时间。请参阅更改 TCP / IP 超时设置。
(可选)在 DSN 级别设置保持活动行为。请参阅更改 DSN 超时设置。
要进行这些更改,请检查链接
AWS:connecting-firewall-guidance.html您可以找到相关的超时值如下:
SHOW VARIABLES LIKE '%_timeout';
您可能需要检查以确保wait_timeout和interactive_timeout已充分设置。两者都默认为 28800(即 8 小时):
SET GLOBAL wait_timeout = 28800;
SET GLOBAL interactive_timeout = 28800;
连接时确保数据库的入站和出站规则都具有 MYSQL / AURORA to Anywhere 和自定义 TCP
本站系公益性非盈利分享网址,本文来自用户投稿,不代表码文网立场,如若转载,请注明出处
评论列表(37条)