AWS MySQL 连接经常超时
AWS MySQL connection frequently times out
我在 AWS (RDS) 中有一个 MySQL 数据库,我通过以下命令从命令行连接到它:
mysql -u _usernme_ -p_mypassword_ -h _aws_mysql_host_ _dbname_
它连接正常,问题是,如果它保持空闲 1-2 分钟,连接就会断开,后续命令就会挂起。我必须终止进程并启动一个新进程。
我需要做哪些配置更改,在哪里更改,以便它永远保持活动状态,就像 localhost
,直到我明确终止连接?
您可以通过以下方式找到相关的超时值:
SHOW VARIABLES LIKE '%_timeout';
您可能需要检查以确保 wait_timeout and interactive_timeout 设置正确。两者都默认为 28800(即 8 小时):
SET GLOBAL wait_timeout = 28800;
SET GLOBAL interactive_timeout = 28800;
当尝试从本地计算机连接到 RDS 并且安全组只允许从 VPC 内连接时会发生此错误。
要解决此问题,请转到您的 RDS 安全组并允许特定 IP 或任何人都可以使用密码和安全规则中的 user_name 进行连接。
下面可以连接任何人
尽管尝试连接 RDS 并跟踪问题并不好
转到 RDS 实例
select RDS 实例并检查安全组的描述
select安全组
select 入站规则
编辑安全规则
允许您的 IP 访问它或公开访问它
或者如果你认为这个错误发生在 RDS 中,你可以简单地查看 RDS 的日志
如果上述设置看起来不错,那么 AWS 会说
从 Amazon EC2 外部连接 — 防火墙超时问题
Example issue:
当 运行 长查询(例如 COPY 命令)时,您的客户端与数据库的连接似乎挂起或超时。在这种情况下,您可能会观察到 Amazon Redshift 控制台显示查询已完成,但客户端工具本身似乎仍然是 运行 查询。查询结果可能丢失或不完整,具体取决于连接停止的时间。
当您从 Amazon EC2 实例以外的计算机连接到 Amazon Redshift 时会发生这种情况,并且空闲连接在一段时间不活动后被中间网络组件(例如防火墙)终止。当您从虚拟专用网络 (VPN) 或您的本地网络登录时,这种行为很典型。
为避免这些超时,我们建议进行以下更改:
- 增加处理 TCP/IP 超时的客户端系统值。你
应该在您用来连接的计算机上进行这些更改
你的集群。应为您的客户调整超时期限
和网络。请参阅更改 TCP/IP 超时设置。
- 可选地,在 DSN 级别设置 keep-alive 行为。请参阅更改
DSN 超时设置。
要进行这些更改,请检查 link
让我们查看下面的屏幕截图,了解修复的详细信息。
连接时请确保您的数据库的入站和出站规则都MYSQL/AURORA到任何地方和自定义 TCP
我在 AWS (RDS) 中有一个 MySQL 数据库,我通过以下命令从命令行连接到它:
mysql -u _usernme_ -p_mypassword_ -h _aws_mysql_host_ _dbname_
它连接正常,问题是,如果它保持空闲 1-2 分钟,连接就会断开,后续命令就会挂起。我必须终止进程并启动一个新进程。
我需要做哪些配置更改,在哪里更改,以便它永远保持活动状态,就像 localhost
,直到我明确终止连接?
您可以通过以下方式找到相关的超时值:
SHOW VARIABLES LIKE '%_timeout';
您可能需要检查以确保 wait_timeout and interactive_timeout 设置正确。两者都默认为 28800(即 8 小时):
SET GLOBAL wait_timeout = 28800;
SET GLOBAL interactive_timeout = 28800;
当尝试从本地计算机连接到 RDS 并且安全组只允许从 VPC 内连接时会发生此错误。
要解决此问题,请转到您的 RDS 安全组并允许特定 IP 或任何人都可以使用密码和安全规则中的 user_name 进行连接。
下面可以连接任何人
尽管尝试连接 RDS 并跟踪问题并不好
转到 RDS 实例
select RDS 实例并检查安全组的描述
select安全组
select 入站规则
编辑安全规则
允许您的 IP 访问它或公开访问它
或者如果你认为这个错误发生在 RDS 中,你可以简单地查看 RDS 的日志
如果上述设置看起来不错,那么 AWS 会说
从 Amazon EC2 外部连接 — 防火墙超时问题
Example issue:
当 运行 长查询(例如 COPY 命令)时,您的客户端与数据库的连接似乎挂起或超时。在这种情况下,您可能会观察到 Amazon Redshift 控制台显示查询已完成,但客户端工具本身似乎仍然是 运行 查询。查询结果可能丢失或不完整,具体取决于连接停止的时间。
当您从 Amazon EC2 实例以外的计算机连接到 Amazon Redshift 时会发生这种情况,并且空闲连接在一段时间不活动后被中间网络组件(例如防火墙)终止。当您从虚拟专用网络 (VPN) 或您的本地网络登录时,这种行为很典型。
为避免这些超时,我们建议进行以下更改:
- 增加处理 TCP/IP 超时的客户端系统值。你 应该在您用来连接的计算机上进行这些更改 你的集群。应为您的客户调整超时期限 和网络。请参阅更改 TCP/IP 超时设置。
- 可选地,在 DSN 级别设置 keep-alive 行为。请参阅更改 DSN 超时设置。
要进行这些更改,请检查 link
让我们查看下面的屏幕截图,了解修复的详细信息。
连接时请确保您的数据库的入站和出站规则都MYSQL/AURORA到任何地方和自定义 TCP