我在让 psql 使用/识别 .pgpass 文件时遇到问题,有人能发现问题所在吗?使用
PGPASSWORD=P@ssw0rd
可以正常工作:
# Passing PGPASSWORD=P@ssw0rd, works fine
bash-5.1# PGPASSWORD=P@ssw0rd psql --username=myuser --host=myserver.local --port=5432 --variable database_name=mydb
psql (16.4, server 14.12)
Type "help" for help.
myuser=> exit
但是使用
PGPASSFILE=/root/.pgpass
会导致密码提示:
# Using PGPASSFILE=/root/.pgpass, prompting for password when it should be using password in /root/.pgpass
bash-5.1# whoami
root
bash-5.1# ls -al /root/.pgpass
-rw-------. 1 root root 57 Oct 15 12:37 /root/.pgpass
bash-5.1# echo $PGPASSFILE
/root/.pgpass
bash-5.1# cat /root/.pgpass
myserver.local:5432:mydb:myuser:P@ssw0rd
bash-5.1# PGPASSFILE=/root/.pgpass psql --username=myuser --host=myserver.local --port=5432 --variable database_name=mydb
Password for user myuser:
@jhole 提供的修复(直接使用数据库名称,例如没有
--variable
的东西):
改变:
PGPASSFILE=/root/.pgpass psql --username=myuser --host=myserver.local --port=5432 --variable database_name=mydb
至:
PGPASSFILE=/root/.pgpass psql --username=myuser --host=myserver.local --port=5432 -mydb