【问题标题】:can't connect to redshift database无法连接到 redshift 数据库
【发布时间】:2013-11-19 11:58:00
【问题描述】:

我正在尝试使用 Postgre JDBC 驱动程序从 SQL Workbench/J 连接到 Redshift 数据库,但我无法通过。我收到此错误“连接尝试失败”。 jdbc 驱动程序已正确定位。我还尝试了 Aginity Workbench for Redshift,但它无法显示数据库列表。我有jdbc:postgresql://host:port/name_of_database 形式的数据库的连接url,但令人惊讶的是我什至无法ping 主机。我可以通过亚马逊控制台看到数据库的健康状况良好。所以,我的问题是:

  1. 为什么我无法 ping 我的 redshift db 服务器?
  2. 有没有办法通过 ssh 连接到数据库服务器?

Edit1:将我的公共 IP 添加到安全组后,主机在 ping 时得到解决,但仍然存在 100% 的数据包丢失。

Edit2:我可以成功地将数据库托管在 EC2-Classic 中,但不能在 EC2-VPC 中。由于我的公共 IP 不足,我尝试在 VPC 中重新托管数据库,那里有 100% 的数据包丢失。

【问题讨论】:

  • 1.您是否使用位于该 Redshift 数据库的“配置”选项卡中的 JDBC URL? 2. 您是在 VPC 上运行此云还是使用任何会阻止您所在位置的网络访问的网络规则?
  • 是的,我正在使用 JDBC URL,如 Amazon 控制台中集群的配置选项卡中所示。云位于 VPC 上,数据库托管在私有子网中。我的团队已经在同一私有子网下的 IP 中托管了一个报表服务器,没有任何问题。所以,我想网络规则不应该是它的原因。

标签: amazon-redshift


【解决方案1】:

看来您只能通过从 VPC 中的 EC2 机器进行连接来解决问题。这意味着您没有公开 Redshift 集群,这是您在启动集群时拥有的选项之一。

【讨论】:

    【解决方案2】:

    我试图通过 psql 从我的本地计算机连接到 VPC 中的 Redshift 集群。我发现我需要将我的本地 IP/CIDR 显式添加到我的安全组的入站规则中。

    您可以在 AWS 控制台的服务>VPC>安全组中找到该菜单。然后单击以编辑您的安全组,您应该会在页面底部看到入站规则选项卡。示例:


    在此之前我对 CIDR 不熟悉,但 32 似乎是默认 CIDR。就我而言,我添加了一个入站规则以允许来自 xx.xxx.xxx.xx/32 的流量 - xx.xxx.xxx.xx 是我的本地 IP 地址。

    【讨论】:

    • 这可能是一个愚蠢的问题。如何获取 IP 地址 77.xxx.xxx.xxx/32?在命令提示符下使用 ipconfig?
    【解决方案3】:

    对于同一VPC中的EC2实例,您必须将私有IP的CIDR/IP添加到安全组规则中,即,而不是54.191.XXX.XXX的公共IP,您应该添加私有IP 172.31.XXX.XXX 到你的安全组的入口规则。

    【讨论】:

      【解决方案4】:

      您必须将您的 IP 地址块添加到集群的安全组中。

      这与其他安全组(即 VPC)是分开的。

      您可以在 Redshift 控制台的左侧找到它。 https://console.aws.amazon.com/redshift/

      【讨论】:

      • 我错过了这一步。但即使在这样做之后,在 EC2-VPC 中托管数据库时连接也会超时。在 EC2-Classic 中托管后,我能够成功连接。但由于公共 IP 不足,我需要将其托管在 VPC 中。
      猜你喜欢
      • 1970-01-01
      • 2021-02-08
      • 1970-01-01
      • 2015-12-10
      • 1970-01-01
      • 2022-11-09
      • 2011-06-16
      相关资源
      最近更新 更多