当前位置: 首页>数据库>正文

pgpool schema不可用 .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个可以用*。附上格式:

pgpool schema不可用 .pgpass不生效,pgpool schema不可用 .pgpass不生效_解决方案,第1张

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

chmod 0600 /opt/PostgreSQL.pgpass 

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

pgpool schema不可用 .pgpass不生效,pgpool schema不可用 .pgpass不生效_pgpool schema不可用_02,第2张

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

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

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

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

便可以直接链接上了。

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

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


https://www.xamrdz.com/database/6hp1921927.html

相关文章: