Postgresql AWS Postgres DB";“不存在”;与PG连接时

Postgresql AWS Postgres DB";“不存在”;与PG连接时,postgresql,amazon-web-services,amazon-rds,Postgresql,Amazon Web Services,Amazon Rds,我似乎无法连接到AWS中的DB实例。我使用的是pg包,下面的示例不起作用 搜索“aws postgres数据库不存在”实际上并没有返回任何有用的信息。在PG github上查看打开/关闭的问题也没有帮助 运行$nc会返回一条成功消息,因此它肯定在那里。客户端配置中的每个值都是从我的DB实例复制/粘贴的 我开始怀疑数据库是否与AWS上RDS的“实例”部分中显示的名称不同 const client = new Client({ host : '<<RDS ENDPOINT&g

我似乎无法连接到AWS中的DB实例。我使用的是
pg
包,下面的示例不起作用

搜索“aws postgres数据库不存在”实际上并没有返回任何有用的信息。在PG github上查看打开/关闭的问题也没有帮助

运行
$nc
会返回一条成功消息,因此它肯定在那里。客户端配置中的每个值都是从我的DB实例复制/粘贴的

我开始怀疑数据库是否与AWS上RDS的“实例”部分中显示的名称不同

const client = new Client({
  host     : '<<RDS ENDPOINT>>',
  database : '<<RDS NAME>>', // maybe this isnt the real name?
  user     : '<<username>>',
  password : '<<password>>',
  port     : <<port>>
});
client.connect()
  .then(data => {
    console.log('connected');
  })
  .catch(err => {
    console.log(err);
  })
const client=新客户端({
主机:“”,
数据库:“”,//可能这不是真名?
用户:“”,
密码:“”,
端口:
});
client.connect()
。然后(数据=>{
console.log('connected');
})
.catch(错误=>{
控制台日志(err);
})

我也遇到了这个问题。看起来DB实例名称和实际DB名称是两个不同的东西,即使在创建DB时添加名称,它也默认为“postgres”。当我输入数据库的名称时,它给出了相同的错误。然而,当我刚刚加入“postgres”时,效果很好。试试看它是否适合您。

RDS实例的初始配置非常混乱,因为参数“database name”只是实例的名称,而不是数据库的正确名称。如果希望AWS在创建db实例时创建数据库,则必须选择“附加配置”并显式添加名为“初始数据库名称”的参数。查看我附加的屏幕截图。

PostgreSQL与我习惯的MySQL/Aurora相比似乎有所不同:听起来DB名称对于postgres是可选的。尝试从您的连接设置中删除
数据库
参数。从您提供的链接中可能会出现这种情况。但是当使用不同的AWS帐户创建一个新实例(我对原始DB实例没有直接控制权)时,它声明如果您不提供名称,DB将不会被创建,所以谁知道呢。似乎创建我试图访问的DB实例的人没有提供dbname。在创建替代实例时,我提供了一个dbname,它在细节中有一个DB NAME属性,如您所说。最后,在客户端配置中没有提供
数据库
,只是使用了我的linux用户名,奇怪的东西。@MarkB是对的,可以连接而不指定任何数据库名称。搜索了几个小时后,这对我很有帮助。每个人(我也是)都把dbname搞混了。所以在数据库名中尝试postgres,因为postgres数据库在默认情况下可用。这对我有用。