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