无法在Amazon EC2中连接Amazon RDS数据库?

4

我有一个控制台应用程序,它使用Entity Framework连接Amazon rds。在我的本地PC上运行良好。但是当我在Amazon EC2上运行我的应用程序时,无法连接到我的Amazon RDS数据库,并显示“底层提供程序打开失败”。我的实体框架连接字符串是...

<add name="MyEntities" connectionString="metadata=res://*/YhFinModel.csdl|res://*/YhFinModel.ssdl|res://*/YhFinModel.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=datasourcename,portnumber;initial catalog=databasename;persist security info=True;user id=userid;password=password;MultipleActiveResultSets=True;App=EntityFramework&quot;" providerName="System.Data.EntityClient" />

提前致谢。

3个回答

12

你查看了您的安全组吗? 我认为您需要添加正在使用的 EC2 安全组以便访问 RDS 实例的端口。


感谢您的回复。我已经在EC2中添加了安全组,但仍然无法正常工作。我还尝试在另一个区域创建了另一个EC2实例,并尝试运行该控制台应用程序,但仍然无法正常工作。 - wahid_maruf
抱歉,我的第一次回复听起来有点混乱。在RDS的管理控制台中,您是否在此处添加了EC2安全组? https://console.aws.amazon.com/rds/home?region=us-east-1#security: - Keenan
请问您能否更具体一些?我已经在RDS实例中添加了数据库安全组。 - wahid_maruf
5
前往RDS控制台,选择“DB安全组”。已经创建了一个默认的安全组,或者您可能已经添加了自定义的安全组。无论您的RDS实例使用哪个安全组,请在选定后查看下方的“描述”标签页。有一个“连接类型”列。选择带有CIDR / IP的下拉菜单,并选择“EC2安全组”。然后,它应该为您提供另一个下拉列表,其中包含您在帐户中配置的EC2安全组。确保选择并添加您实际运行的EC2实例所使用的组。 - Keenan
这对我有用。请注意,在添加 EC2 安全组后,您需要重新启动 RDS 实例才能使其生效! - Derek Kurth

3
如果您的EC2实例和RDS实例位于不同的地区,您将需要进入RDS安全组,并将EC2实例的外部 IP地址作为CIDR / IP输入。至少对我而言,这是有效的。

0

这是稍微更新的版本,需要使用它才能使其正常工作。点击RDS仪表板。选择您的RDS实例->单击详细信息图标->单击附加到所选RDS实例的安全组URL。这将使您进入EC2的安全组设置。一旦您选择了安全组,请单击入站选项卡。在这里,您需要可能修改或创建一个新规则(MS SQL、TCP、端口(例如1433),然后是允许请求的IP地址/IP地址范围。您可以将所有IP地址设置为确认它是否有效,然后根据实例和/或测试环境IP地址的IP地址范围加强安全性。

祝你好运。


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