使用 PGPASSFILE (.pgpass) 时 psql 提示输入密码

问题描述 投票:0回答:1

我在让 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:
postgresql psql
1个回答
0
投票

@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
最新问题
© www.soinside.com 2019 - 2025. All rights reserved.