DBHOST, DBNAME和DBUSER的所有值都正常
我已经在.pgpass文件中设置了所需的条目,文件权限设置为0600。
我能够连接到db形式shell命令行不给密码。
但是当我运行内部查询postgres的shell脚本时,它要求输入密码。
我不知道哪里出了问题。
下面是一个示例shell脚本:#!/bin/bash
source $1
psql -h $DBHOST -d $DBNAME -U $DBUSER << EOF
select * from students limit 10;
EOF
没关系。
我犯了一个愚蠢的错误。我在windows上编辑了配置文件。所以它在每行的末尾添加了crlf。因此,即使它不可见,当连接到postgres时,它被使用。在命令行中这工作。
psql -h 192.168.1.45 -d somedbname -U $somedbuse
但是这个没有。(源配置文件后)
psql -h $DBHOST -d $DBNAME -U $DBUSER