以用户 postgres 身份通过 bash 脚本运行 PostgreSQL CLI (psql) 会导致发送密码提示,即使我可以在没有密码的情况下手动运行它。当我尝试将 -w 放入脚本时,会发生此错误:
psql:fe_sendauth:未提供密码
我可以在没有密码的情况下以自动方式运行 psql 吗?
以用户 postgres 身份通过 bash 脚本运行 PostgreSQL CLI (psql) 会导致发送密码提示,即使我可以在没有密码的情况下手动运行它。当我尝试将 -w 放入脚本时,会发生此错误:
psql:fe_sendauth:未提供密码
我可以在没有密码的情况下以自动方式运行 psql 吗?
您可以使用密码文件pgpass.conf或使用PGPASSWORD变量。
对于本地开发或者如果安全不是问题,您还可以通过修改文件将 PostgreSQL 配置为在信任身份验证模式下运行。pg_hba.conf
只要您对从运行脚本的主机连接的特定用户没有身份验证,您就可以。为此,您只需pghba.conf
在服务器上添加以下行(您将需要重新启动 PostgreSQL 守护程序):
host YOUR_DB YOUR_USER YOUR_IP trust
在哪里:
其他选项可能是使用expect
实用程序(假设您使用的是 linux 或某些 unix 变体或 shell,例如 cygwin)。