我需要在我拥有的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实例的步骤吗?
答案 0 :(得分:2)
.pgpass
不提供连接信息。您似乎期望在创建.pgpass
文件后,您可以运行psql
而不使用参数,它将知道连接的位置。事实并非如此。
您放在.pgpass
中的主机名,端口等是这样的,以便PostgreSQL知道在匹配连接信息时要查看哪一行以查找其密码。
如果你必须跑:
psql -h something
要在没有.pgpass
文件的情况下进行连接,仍需要运行相同的内容以将与<。em> .pgpass文件连接起来。
如果你运行psql
没有参数,它将连接到本地PostgreSQL(如果有的话),使用当前的unix用户名作为postgresql用户名和要连接的数据库。这就是你得到错误的原因。
如果要更改默认连接,可以使用PGHOST
,PGPORT
等环境变量和/或a .pgservice.conf
file。
请参阅the manual了解详情。