赞
踩
作者:瀚高PG实验室 (Highgo PG Lab)- 波罗
psql 访问数据库涉及5个要素:
-U 用户名
-W 交互方式输入密码
-h 主机名
-p 端口号
-d 数据库名
一般客户端访问需要指定以上5个要素,类似于Oracle客户端 tnsnames.ora文件中的相关设定。
服务端通过psql访问数据库如果不指定,通常会查找用户环境变量的相关设置(譬如.bash_profile文件或创建的.mylocalenv文件)。
当然验证过程要受到pg_hba.conf文件的限制;要不要输入密码关联 method字段值md5或trust(可信的不需要密码验证)。
另外,需要说明的一点是:-W 选项的含义是必须以交互的方式输入密码,而不是在选项后边直接输入明文密码,区别于Oracle 或DB2的输入密码明文,这一点应该是出于安全性的考虑。
示例:
[postgres@hgdb01 data]$ vi pg_hba.conf
# TYPE DATABASE USER ADDRESS METHOD
# "local" is for Unix domain socket connections only
local all all md5
host all postgres 192.168.137.0/24 md5
host all all ::1/128 md5
[postgres@hgdb01 data]$ psql -U postgres -W -h localhost -d testdb -p 1921
Password for user postgres: #此处必须是交互式输入密码
psql (9.5.7)
Type "help" for help.
testdb=# \q
这里的-u -p -d选项都可以省略,因为环境变量有所设置!
[postgres@hgdb01 data]$ cat ~/.bash_profile PATH=$PATH:$HOME/.local/bin:$HOME/bin export PATH #add export PGPORT=1921 export PGDATA=/pgdata/data export LANG=en_US.utf8 export PGHOME=/usr/local/pgsql957 export LD_LIBRARY_PATH=$PGHOME/lib:/lib64:/usr/lib64:/usr/local/lib64:/lib:/usr/lib:/usr/local/lib:$LD_LIBRARY_PATH export DATE=`date +"%Y%m%d%H%M"` export PATH=$PGHOME/bin:$PATH:. export MANPATH=$PGHOME/share/man:$MANPATH export PGUSER=postgres export PGHOST=$PGDATA export PGDATABASE=testdb alias rm='rm -i' alias ll='ls -lh'
[postgres@hgdb01 data]$ psql -U postgres
Password for user postgres: #此处必须是交互式输入密码
psql (9.5.7)
Type "help" for help.
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。