如何使用 PGPASSFILE 环境变量?

Obt*_*ice 4 postgresql

我正在使用areca备份程序,并在其中编写了一个脚本来备份 postgre 数据库。我想通过pgpass.conf文件获取密码,但我无法提供它的脚本路径。我该如何使用PGPASSFILE?这是我的脚本(;是分隔符):

-U;postgres;-w;-F;custom;-b;-f;D:\satraAutoBackup\Daily\Saturday\postgresql\geoMolkBackup;geoMolkPortal2
Run Code Online (Sandbox Code Playgroud)

Shr*_*vas 8

  1. 使用内容创建 .pgpass 文件

    主机:5432:somedb:someuser:somepass

  2. 使用命令设置权限

    须藤 chmod 600 .pgpass

  3. 将文件所有者设置为您登录时使用的同一用户:

    须藤 chown login_username:login_username .pgpass

  4. 设置 PGPASSFILE 环境变量:

    导出 PGPASSFILE='/home/user/.pgpass'

现在通过连接到数据库进行检查(删除 -w):

psql -h host -U someuser somedb

它不会提示输入密码并登录到 postgresql。

  • 我认为创建`PGPASSFILE` env 不是强制性的,因为`~/.pgpass` 是pgpass 文件的默认位置。 (3认同)

Hou*_*ari 4

您可以通过将环境变量设置PGPASSFILE为 的路径pgpass.conf并删除-w参数来完成此操作。
例如。:export PGPASSFILE="/path/to/pgpass.conf"

PS:请确保将其设置pgpass.conf在安全的位置,并使用 NTFS 权限锁定它。

此wiki 页面上的一个用例