我是靠谱客的博主 虚幻砖头,最近开发中收集的这篇文章主要介绍postgresql数据库 客户端 设置 免密连接,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

目录

方法一:设置环境变量 PGPASSWORD

方法二:设置 .pgpass 密码文件

方法三:修改服务器端 pg_hba.conf


平常工作中,有时需要远端连接 PostgreSQL 数据库做些维护,例如远端备份等;如果备份脚本写在远端机器,备份的时候会弹出密码输入提示,那么脚本就不能后台执行,这里总结了几种不弹出密码输入提示的方法。

测试环境
目标库IP: 192.168.1.25/5432 ; 数据库: Mydb ;用户名:postgres
客户端IP: 192.168.1.26

在 192.168.1.26 连接数据库 Mydb , 弹出密码提示

postgres@linux-> psql -h 192.168.1.25 -p 5432 Mydb postgres
Password for user postgres:

方法一:设置环境变量 PGPASSWORD

PGPASSWORD 是 PostgreSQL 系统环境变量,在客户端设置这后,那么在客户端连接远端数据库时,将优先使用这个密码。

测试

postgres@linux-> export PGPASSWORD=mypassword

postgres@linux-> psql -h 192.168.1.25 -p 5432 Mydb postgres
psql (8.4.4)
Type "help" for help.

Mydb=> q

备注:设置环境变量 PGPASSWORD ,连接数据库不再弹出密码输入提示。 但是从安全性方面考虑,这种方法并不推荐。

方法二:设置 .pgpass 密码文件

通过在客户端 /home/postgres 目录下创建隐藏文件 .pgpass ,从而避免连接数据库时弹出密码输入提示。

创建密码文件 .pgpass ( on 客户端 )

vi /home/postgres/.pgpass

格式
hostname:port:database:username:password

范例
192.168.1.25:5432:Mydb:postgres:mypassword

权限
Chmod 600 .pgpass

连接测试

postgres@linux-> psql -h 192.168.1.25 -p 5432 Mydb postgres

psql (8.4.4)
Type "help" for help.

Mydb=>

备注:在/home/postgres 目录创建了密码文件 .pgpass 文件后,并正确配置连接信息,那么客户端连接数据时会优先使用 .pgass文件, 并使用匹配记录的密码,从而不跳出密码输入提示,这种方法比方法一更安全,所以推荐使用创建 .pgpass 文件方式。如果从192.168.1.26的app(家目录/home/app)用户连接192.168.1.25的postgresql的话,.pgpass是在192.168.1.26的/home/app下面的,这点要注意。

方法三:修改服务器端 pg_hba.conf

修改认证文件 $PGDATA/pg_hba.conf, 添加以下行, 并 reload使配置立即生效。

host Mydb postgres 192.168.0.0/24 trust

[postgres@linux]$ pg_ctl reload -D $PGDATA / service postgresql reload
server signaled

服务器端 pg_hba.conf 的配置

# IPv4 local connections:
host all all 0.0.0.0 trust //如果需要远程连接的话,将127.0.0.1/32改为0.0.0.0,或者指定特定主机,如192.168.1.26

客户端再次连接测试

postgres@linux-> psql -h 192.168.1.25 -p 5432 Mydb postgres

psql (8.4.4)
Type "help" for help.

Mydb=> q

备注:修改服务端 pg_hba.conf 并 reload 后,不再弹出密码输入提示。

最后

以上就是虚幻砖头为你收集整理的postgresql数据库 客户端 设置 免密连接的全部内容,希望文章能够帮你解决postgresql数据库 客户端 设置 免密连接所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(37)

评论列表共有 0 条评论

立即
投稿
返回
顶部