psql 不读取 .pgpass

psql does not read .pgpass

我可以通过提供用户名、主机名和数据库名称登录到 PostgreSQL 服务器:

psql -U led -h 127.0.0.1 led
psql (9.2.23)
Type "help" for help.

led=> 

我有这个 .pgpass 文件:

cat .pgpass 
127.0.0.1:5432:led:led:password

psql 不工作。似乎无法读取 .pgpass:

psql 
psql: FATAL:  role "vagrant" does not exist

如您所见,psql 尝试以用户 "vagrant" 身份登录:OS shell 用户。但我想以用户 "led".

登录

.pgpass 文件提供特定用户在特定 host/port/database(或模式)上的密码详细信息。它可以包含多行,因为您可以作为多个用户连接到多个主机。

您仍然需要设置连接详细信息,然后它会使用这些信息来查找您的密码。

如果您只想要一个不同于您的系统用户名且不是本地的 "default" 连接,那么您可以通过定义 alias 或设置 environment variables 来实现。我经常在项目顶部有一个设置文件,我 source 用于设置我的测试数据库的连接详细信息。

编辑:关于设置命令别名的一些背景信息