无法连接到 AWS RDS 上的 MySQL 服务器

12

我是AWS RDS的新手。我已经创建了RDS实例,但我不知道该如何连接到这个数据库。我尝试了以下方法:

mysql -h awsinstanamehere.rds.amazonaws.com -P 3306 -u username -p

输入密码后,我遇到了以下错误:

ERROR 2003 (HY000):无法连接到MySQL服务器, 'awsinstanamehere.rds.amazonaws.com'(110)

需要在AWS控制台中设置任何安全设置吗?

注意:我想要导入这个数据库的表格。

谢谢

5个回答

14

RDS有一个安全组 - 在AWS控制台的RDS中,有一个安全组的选项。

如果您没有明确创建安全组,则可能使用“默认”组。您应该为每个RDS实例设置一个组。

您需要确保端口3306对本地网络开放,并且对于连接到它的任何应用程序也是如此。您可以通过IP或安全组允许访问。


谢谢回复。现在我可以访问数据库了。我该如何将EC2实例中的所有表导入到RDS中,或者如何将本地系统中的表导入到RDS实例中? - Rajaraman
当我尝试这样做时,我被转到了VPC管理控制台,那里有什么我可以做的吗? - Nate

3
同样的错误,但在我的情况下问题与安全组无关。我忘记在子网的路由表中添加额外的路由。请参见以下第二条路由,其中互联网网关被添加为所有非本地流量(VPC外部)的目标:

enter image description here


谢谢你,你让我的一天变得美好!! - Wael Ben Taleb

1
我在这些答案上遇到了一些麻烦,所以这里是我遵循的步骤来使其正常工作...
  1. 通过ssh登录到我的ec2实例。
  2. 键入此命令:curl canhazip.com
  3. 复制返回的IP地址
  4. 进入我的aws中的
  5. 在左侧列中点击安全组
  6. 选中一个安全组旁边的复选框
  7. 入站规则选项卡下单击编辑
  8. 添加此规则:MySQL/Aurora (3306) TCP (6) 3306 [来自#2的IP]/32
  9. 保存

对于每个安全组,我都这样做,直到mysql连接从命令行正常工作,然后删除所有不需要的安全组,并重新测试以确保我仍然可以连接。


-1

默认情况下,由AWS定义的安全组未配置为公开可用的入站源。您需要修改安全组入站源IP为0.0.0.0/0。


这不是一个好的答案,因为这会向所有人开放。应该明确地放置你的IP地址。 - Joey V.

-1

当我添加了3306端口时,它对我起作用了,而仅有的1433端口却没有起作用...

所以安全组是这样创建的

安全组vpc-XXXXXX

MY SQL / TCP / 1433 / 0.0.0.0/0
MY SQL / TCP / 1433 / ::/0
MTSQL/Aurora / TCP / 3306 / 0.0.0.0/0
MSSQL/Autora / TCP / 3306 / ::/0

按照头部类型/协议/端口范围/来源进行


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接