2

我在 .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 的所有值都正常。

4

1 回答 1

2

没关系。

我犯了一个愚蠢的错误。我在 Windows 上编辑了配置文件。所以它在每一行的末尾添加了 crlf 。因此,即使它不可见,它也在连接到 postgres 时被使用。

所以在命令行中这有效。

psql -h 192.168.1.45 -d somedbname -U $somedbuse

但这没有。(采购配置文件后)

psql -h $DBHOST -d $DBNAME -U $DBUSER
于 2013-05-16T02:55:02.480 回答