PostgreSQL在linux中免密登录执行函数.pgpass

记录一下自己在远端操作Postgresql数据库遇到的问题和解决方法。(Linux下)

这篇主要提供给可能跟我遇到同样问题的朋友,就是在按照网上查询的方法配置了.pgpass文件但是发现没有生效。

项目中有一个需求,需要用到shell脚本去调用pg函数,可是在每次运行脚本的时候都需要输入password。这里需要跳过这个密码验证,然后在官方找到了解决办法,在服务中找到postgresql的路径,以我自己的为例(cd /opt/PostgreSQL/),也可以     su -postgres 跳转过来,在此路径下创建一个.pgpass文件(vi /opt/PostgreSQL/.pgpass),按I进入编辑模式。

输入文件的格式:

hostname:port:database:username:password

根据官方文档说明,前面4个可以用*。附上格式:

保存以后需要对这个文件进行一下权限设置附上命令行:

chmod 0600 /opt/PostgreSQL.pgpass 

后面就可以先连接数据库测试一下:

 备注:创建了密码文件 .pgpass 文件后,并正确配置连接信息,那么客户端连接数据时会优先使用 .pgass文件, 并使用匹配记录的密码,从而不跳出密码输入提示,这种方法比方法一更安全,所以推荐使用创建 .pgpass 文件方式。

按道理说会跟上面备注产生一样的结果,发现并不是这样,还是需要输入密码,然后我就开始查看自己的格式,权限,然而并没有看出来什么问题,失败了N多次之后准备舍弃掉这个方法的时候,想到是不是这个文件压根就没有执行。遂开始再次寻找问题。最后解决方案是在使用之前先进行一次密码验证。在使用需要密码的文件的时候先执行下面命令:

export PGPASSFILE=/文件路径/.pgpass  (我这边便是export PGPASSFILE=/opt/PostgreSQL/.pgpass)

然后在链接数据库测试(如上图)

便可以直接链接上了。

在shell脚本中这句话就在你执行函数前面运行就好了!!!

这种并不是网上主流的解决办法,可是不知道为什么配置好了.pgpass文件之后还是不行,如果有大佬碰见同样的问题并且有解决方案,希望留言一起探讨,感谢???

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值