如何通过AWS RDS在没有“数据库”名称的情况下连接到PostgreSQL DB

时间:2018-06-25 02:24:08

标签: node.js postgresql amazon-web-services amazon-rds

我使用节点pg包pg,尝试连接到在AWS-RDS中创建的PostgreSQL数据库。我相信在创建实例时不会给数据库命名,请注意实例不同于数据库。当尝试使用Client中的Poolpg连接时,我的语法是

const client = new Client({
  host     : <<RDS ENDPOINT>>,
  user     : <<RDS DB USERNAME>>,
  password : <<RDS DB PASSWORD>>,
  port     : <<RDS DB PORT>>
});
client.connect()
  .then(data => {
    console.log('connected');
  })
  .catch(err => {
    console.log(err);
  })

但是每次我返回error: database <<linux user name>> does not exist

现在创建一个不同的PostgreSQL实例并为数据库提供名称,我可以在database对象配置中添加一个Client道具,并且一切正常,并且返回控制台日志{ {1}}。

所以我的问题是,如何在connected配置中不提供database道具的情况下连接到AWS-RDS上的数据库?

编辑

编辑1

Client道具提供空字符串将被我的Linux用户名覆盖

1 个答案:

答案 0 :(得分:2)

使用node-postgres软件包,您需要在“客户端/池”配置对象中提供数据库属性。如果您的PostgreSQL数据库没有名称,请说如果您是使用AWS-RDS创建的,则该数据库名称将默认为postgres。只需向数据库属性提供postgres即可解决未命名数据库的所有问题。

const client = new Client({
  host     : <<RDS ENDPOINT>>,
  user     : <<RDS DB USERNAME>>,
  password : <<RDS DB PASSWORD>>,
  port     : <<RDS DB PORT>>,
  database : 'postgres' // supplying a database name with `postgres`

});