非交互方式指定psql,pg_dump密码

psql 和 pg_dump 等工具连接PostgreSQL数据库时,通过-W参数,在终端以交互方式输入密码,很多时候,我们希望使用脚本调用psql或者pg_dump做一些自动化的操作,那么此时如何以非交互方式指定密码?

方法一

设置环境变量PGPASSWORD,psql 和 pg_dump 等工具会自动读取环境变量PGPASSWORD的值作为连接密码。

示例:

export PGPASSWORD=123456
psql -h 127.0.0.1 -U admin -p 5432 db

方法二

使用配置文件~/.pgpass

~/.pgpass文件内容格式如下:
hostname:port:database:username:password

示例:

vim ~/.pgpass
192.168.56.200:5433:db:admin:123456

psql -h 192.168.56.200 -U admin -p 5433 db

当psql使用的参数与~/.pgass行内容匹配时,就会使用匹配到的那一行的密码作为psql的连接密码。

发表评论