ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

用客户端命令psql连接 PostgreSQL 不输入密码的方法

2019-02-28 14:51:49  阅读:379  来源: 互联网

标签:psql PostgreSQL BigData 192.168 密码 ZY pgpass 客户端


   用客户端命令psql连接 PostgreSQL 不输入密码的方法       

用psql命令连接远程的PostgreSql数据库时,在命令中不能传密码,只能连接后,再按照提弹出密码输入提示输入密码(这一点感觉很别扭,在Mysql上就可以在命令中传入密码),如果这样的话就涉及到和服务器的交互过程(或者称之为会话)。如下所示,输入命令后提示你输入密码:

eg:在 192.168.1.22 连接数据库 ZY-BigData, 弹出密码提示

[zhu@localhost ~]$ psql -h 192.168.8.22 -p 5432 -U postgresql -d ZY-BigData
Password for user postgresql:

要解决这种问题,可以由如下四种方法:

一、测试环境说明
PostgreSQL 数据库所在主机IP: 192.168.1.22、端口号:5432 待连接数据库名: ZY-BigData
客户端IP: 192.168.1.169

二、解决方法

方法一:设置环境变量 PGPASSWORD

1.设置环境变量PGPASSWORD :

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

eg:

[zhu@localhost ~]$ export PGPASSWORD=123456
[zhu@localhost ~]$ psql -h 192.168.8.22 -p 5432 -U postgresql -d ZY-BigData
psql (9.3.2)
Type “help” for help.
ZY-BigData=#

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

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

–创建密码文件 .pgpass ( on 客户端 )
vi /home/postgres/.pgpass

–格式
hostname:port:database:username:password

–范例
192.168.1.22:5432:ZY-BigData:postgresql:123456

–设置权限
Chmod 600 .pgpass

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

3.修改服务器端pg_hba.conf文件:

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

host ZY-BigData postgresql 192.168.8.169/32 trust

reload使生效: pg_ctl reload -D $PGDATA

服务端 pg_hba.conf 的配置参考:

IPv4 local connections:

host all all 0.0.0.0/32 trust
host all all 127.0.0.1/32 trust
host ZY-BigData postgresql 192.168.8.169/32 trust
host all all 0.0.0.0/0 md5

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

参考:
https://blog.csdn.net/zhu_xun/article/details/23347869

标签:psql,PostgreSQL,BigData,192.168,密码,ZY,pgpass,客户端
来源: https://blog.csdn.net/u011479200/article/details/88028247

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有