我声明了一个环境变量PGPASSFILE
,指向我.pgpass
文件的位置。
>echo $PGPASSFILE
/somedir/.pgpass
根据this doc,文件的权限标记适合不将文件公开给其他任何人:
>ls -la /somedir
drwxr-xr-x 2 root root 4096 2014-06-25 17:40 .
drwxr-xr-x 6 root root 4096 2014-06-25 16:37 ..
-rw------- 1 root root 354 2014-06-25 16:43 .pgpass
-rw-r--r-- 1 root root 30 2014-06-25 16:37 .pgpass_path
该文件看起来正确:
1 localhost:*:*:postgres:blabla
2 localhost:*:somedb:somedb_master:blabla
3 localhost:*:somedb:somedb_rw:blabla
但是,当我尝试调用psql时,它仍然提示我输入密码:
>psql -h localhost -d somedb -U somedb_rw
Password for user somedb_rw:
输入密码后连接成功,但不会提示我。知道什么可能是错的吗?这是在Ubuntu 10.04 VM上。在我的Mac主机上,相同的配置无需提示即可运行。