最近需要写个简单的脚本进行Postgresql数据库的定时备份,这才发现pg_dump命令必须交互式地输入密码。于是开始在网上找下解决方案,找到了以下两种方案:
1.使用export命令设置环境变量,将数据库密码赋值给PGPASSWORD
1 | export PGPASSWORD="$put_here_the_password" |
2.在用户主目录下创建一个.pgpass文件,将数据库用户名密码信息配置写入其中
1 | localhost:5432:mydbname:postgres:mypass |
随后将该文件设置权限为600即可(否则可能不会生效)。
使用以上两种方法,都可以让需要使用密码的命令不再需要交互式地输入密码。
参考:
http://www.postgresql.org/docs/current/static/libpq-pgpass.html