4

以用户 postgres 身份通过 bash 脚本运行 PostgreSQL CLI (psql) 会导致发送密码提示,即使我可以在没有密码的情况下手动运行它。当我尝试将 -w 放入脚本时,会发生此错误:

psql:fe_sendauth:未提供密码

我可以在没有密码的情况下以自动方式运行 psql 吗?

4

2 回答 2

12

您可以使用密码文件pgpass.conf或使用PGPASSWORD变量。

对于本地开发或者如果安全不是问题,您还可以通过修改文件将 PostgreSQL 配置为在信任身份验证模式下运行。pg_hba.conf

于 2012-05-04T18:26:04.890 回答
1

只要您对从运行脚本的主机连接的特定用户没有身份验证,您就可以。为此,您只需pghba.conf在服务器上添加以下行(您将需要重新启动 PostgreSQL 守护程序):

host YOUR_DB YOUR_USER YOUR_IP trust

在哪里:

  1. YOUR_DB:数据库名称
  2. YOUR_USER:用于运行脚本的用户
  3. YOUR_IP:脚本运行的IP

其他选项可能是使用expect实用程序(假设您使用的是 linux 或某些 unix 变体或 shell,例如 cygwin)。

于 2012-05-04T18:25:29.407 回答