Chinaunix

标题: psql执行的时候不输入密码的设定 [打印本页]

作者: 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\[User Name]\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
回复 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来免登陆吧




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2