非交互方式指定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

~/.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的连接密码。

方法三,连接字符串

psql 的参数放在双引号里面,类似于连接字符串的用法,如下:

psql "host=127.0.0.1 port=5432 dbname=postgres user=admin password=123456"

文章评论

0条评论