我在.pgpass文件中输入了必填项,文件权限设置为0600。
我可以在不提供密码的情况下连接到db form shell命令行。
但是当我运行一个内部查询postgres的shell脚本时,它要求输入密码。
我无法弄清楚可能出现的问题。
以下是一个示例shell脚本:
#!/bin/bash
source $1
psql -h $DBHOST -d $DBNAME -U $DBUSER << EOF
select * from students limit 10;
EOF
DBHOST,DBNAME和DBUSER的所有值都很好。
答案 0 :(得分:2)
没关系。
我犯了一个愚蠢的错误。我在Windows上编辑了配置文件。所以它在每一行的末尾添加了crlf。因此即使它不可见,它也会在连接到postgres时被使用。所以在命令行中 这很有效。
psql -h 192.168.1.45 -d somedbname -U $somedbuse
但事实并非如此。 (在获取配置文件后)
psql -h $DBHOST -d $DBNAME -U $DBUSER