【问题标题】:Can't connect Amazon rds database in Amazon ec2?无法在 Amazon ec2 中连接 Amazon rds 数据库?
【发布时间】:2016-08-18 03:09:32
【问题描述】:

我有一个控制台应用程序,它与 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" />

提前致谢。

【问题讨论】:

    标签: .net amazon-web-services amazon-rds


    【解决方案1】:

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

    【讨论】:

    • 感谢您的回复。我已经在 ec2 中添加了安全组,但没有任何效果。我还在另一个区域创建了另一个 ec2 并尝试运行该控制台应用程序但不起作用。
    • 道歉,因为我的第一反应听起来令人困惑。在 RDS 的管理控制台中,您是否在此处添加了 EC2 安全组? console.aws.amazon.com/rds/home?region=us-east-1#security:
    • 请您说得更具体些。我在 RDS 实例中添加了 db 安全组。
    • 转到 RDS 控制台。选择“数据库安全组”。已经创建了一个默认组,或者您可能已经添加了一个自定义组。无论您的 RDS 实例使用哪个组,请在选择一个后查看下面的“描述”选项卡。有连接类型列。选择具有 CIDR/IP 的下拉菜单并选择“EC2 安全组”。然后,它应该为您提供您在账户中配置的 EC2 安全组的另一个下拉列表。确保选择并添加您实际运行的 EC2 实例正在使用的组。
    • 这对我有用。注意,添加EC2安全组后需要重启RDS实例才能正常工作!
    【解决方案2】:

    如果您的 EC2 实例和 RDS 实例位于不同的区域,您必须前往 RDS 安全组并输入 EC2 实例的 external IP 作为 CIDR/IP。至少这对我有用。

    【讨论】:

      【解决方案3】:

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

      祝你好运。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-05-12
        • 1970-01-01
        • 2017-05-22
        • 1970-01-01
        • 1970-01-01
        • 2017-02-17
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多