.pgpass与AWS RDS

时间:2015-11-10 11:01:34

标签: postgresql amazon-web-services

我需要在我拥有的AWS Postgres RDS实例上运行多个命令。我不想每次都输入密码。我试图使用.pgpass文件,但我遇到了错误。我第一次遇到一个错误,该错误表示'角色" ubuntu用户名"不存在'。我以postgres用户身份登录并创建了该用户名。在此之后,我得到的错误说数据库不存在。我感觉这些错误与尝试连接到AWS RDS实例无关。

psql --host=<awshost> --port=5432 --username=<awsrdsusername> --password --dbname=<dbname要求输入密码,然后在我输入密码后登录。现在,我在名为/home/<ubuntuusername>的{​​{1}}中放置了一个.pgpass的文件。此文件的权限设置为0600.现在,当我从终端运行<awshost>:5432:<dbname>:<awsrdsusername>:<password>并产生错误 - psql时。这些步骤如this page所述。

有人可以帮助我完成将pgpass文件连接到AWS RDS实例的步骤吗?

1 个答案:

答案 0 :(得分:2)

.pgpass不提供连接信息。您似乎期望在创建.pgpass文件后,您可以运行psql而不使用参数,它将知道连接的位置。事实并非如此。

您放在.pgpass中的主机名,端口等是这样的,以便PostgreSQL知道在匹配连接信息时要查看哪一行以查找其密码。

如果你必须跑:

psql -h something

要在没有.pgpass文件的情况下进行连接,仍需要运行相同的内容以将与<。em> .pgpass文件连接起来。

如果你运行psql没有参数,它将连接到本地PostgreSQL(如果有的话),使用当前的unix用户名作为postgresql用户名和要连接的数据库。这就是你得到错误的原因。

如果要更改默认连接,可以使用PGHOSTPGPORT等环境变量和/或a .pgservice.conf file

请参阅the manual了解详情。