getfuture 发表于 2010-10-29 13:18

psql执行的时候不输入密码的设定

对于很多的*.sql文件,用于创建数据库表。如果一个一个的运行,肯定会浪费时间。这样我做了批处理文件(Bat文件),来一次操作多个*.sql,但是,这个时候遇到一个问题,因为我的批处理是这样写的:

@echo off
for %%c in (*.sql) do psql -d ucom -U ucom_user -f %%c
pause

这样,psql每运行一个*.sql文件的时候都要你输入一次密码,真是烦透了。如何才能不输入密码,让这些文件一次被处理掉哪?到网上查了一下,还真有办法。
Windwos环境下,创建%APPDATA%\postgresql\pgpass.conf这样一个文件,文件中的内容设定为:
hostname:port:database:username:password 其中hostname是主机地址,port是数据库端口,后面的三个参数分别是数据库名,登陆用户和登陆密码。比如我的文件是这样设定的localhost:5432:ucom:ucom_user:ucom_user。这样再去执行上面的批处理,一次就OK了,再不用反复输入密码了。其中,变量%AppData%是一个对Application Data路径的简记形式,一般情况下可能是: C:\Documents and Settings\\Application Data目录。


出处:http://blog.csdn.net/v_fei/archive/2007/11/19/1893562.aspx

renxiao2003 发表于 2010-11-05 09:26

学习了。我原来在LINUX下做备份也遇到要输入密码的问题。害得我没办法最后学习expert脚本来做的。

tanfeng3 发表于 2010-11-16 13:53

关于.pgpass文件不用终端输入密码的问题,PG官网文档里讲得很详细

renxiao2003 发表于 2010-11-16 14:21

回复 3# tanfeng3


    还是文档看得少啊。

yaohong0225 发表于 2014-09-05 17:08

回复 3# tanfeng3

还能记得,在官网的哪里吗?我找了好久,没有找到啊!
   

tanfeng3 发表于 2014-09-09 10:03

yaohong0225 发表于 2014-09-05 17:08 static/image/common/back.gif
回复 3# tanfeng3

还能记得,在官网的哪里吗?我找了好久,没有找到啊!


之前写了点资料,如下:

几种客户端连接 PostgreSQL 不输入密码的方法
http://francs3.blog.163.com/blog/static/405767272011725112431290/


手册中关于.pgpass 的说明
http://www.postgresql.org/docs/current/static/libpq-pgpass.html

yaohong0225 发表于 2014-09-10 16:15

回复 6# tanfeng3
谢谢你,你的日志中写的非常的详细,非常好的文章,谢谢!

   

asdf2110 发表于 2014-09-19 08:50

把这个备份用户 ucom_user 设为 trust 可以吗?

回复 1# getfuture


   

xiaotengyi 发表于 2015-05-15 18:53

也可以通过配置pg_service.conf来免登陆吧
页: [1]
查看完整版本: psql执行的时候不输入密码的设定