尝试连接到数据库时遇到错误 08001

Encountering error 08001 when attempting to connect to database

当我尝试连接到我根据此处 (https://aws.amazon.com/getting-started/tutorials/create-connect-postgresql-db/) 的 AWS“使用 Amazon RDS 创建并连接到 PostgreSQL 数据库”教程创建的 PostgreSQL 数据库实例时,我收到错误如下:

[08001] The connection attempt failed. java.net.SocketTimeoutException: connect timed out.

数据库设置为允许所有端口和来自所有 IP 地址的传入和传出流量。我完全不知道如何让它工作,并已联系 AWS Support 征求他们的意见,但到目前为止,我所做的只是按照 AWS 教程规定的说明进行操作——无济于事。

有谁知道可能是什么问题?

编辑:我应该提一下,我的主机 URL、端口号、数据库名称等都已正确输入到 DataGrip 中,所以上面的 none 是问题所在。

好的--我已经弄明白了。

首先,@Mark B 是对的——问题是我还没有让数据库本身可以通过它所属的 VPC 安全组公开访问。为此,在 AWS 的数据库详细信息屏幕上,我:

  1. 单击(对我来说是唯一的)link 在数据库仪表板的“VPC 安全组”下方,这将我引导至 EC2 安全组屏幕
  2. 单击与我的数据库相关的安全组 link,将我定向到该组的详细信息页面
  3. 单击“编辑入站规则”按钮,将我定向到“编辑入站规则”屏幕
  4. 单击“添加规则”按钮,这导致 table 行包含以下列:“类型”、“协议”、“端口范围”、“源”、“描述 - 可选”。 =26=]
  5. 为“类型”列选择“PostgreSQL”,这导致“TCP”和“5432”的值分别填充“协议”和“端口范围”列,输入我机器的 IP 地址(“123.456 .789.012/32"--没有引号和括号),并将“描述 - 可选”留空,因为它是可选的。

最后,我想我忘记了明确命名数据库,所以我尝试输入对我来说表面上是数据库名称(即“database-1”)的尝试导致连接错误,表明“数据库 1”不存在。因此,为了方便和简单地验证我的数据库连接,我在我的数据库客户端(我目前正在使用 DataGrip)中输入“postgres”作为数据库名称,因为“postgres”是 postgreSQL 数据库的实际名称。

那应该行得通。我敢肯定,对于那些对 AWS 更有经验的人来说,这都是显而易见的事情,但它对我来说是新的,想必对许多其他人来说也是如此。

再次感谢@Mark B,让我走上了正确的道路。