
背景
Greenplum底层是postgresql,客户端自然也是psql。由于psql本身不支持通过参数来指定
密码进行登录,所以需要通过别的方式来实现,这里介绍三种可以实现免交互/免密执行
SQL的方法。
执行脚本
1 #!/bash/bin
2 source/usr/local/greenplum‐db/greenplum_path.sh
3 exportGPHOME=/usr/local/greenplum‐db‐6.4.0
4 exportMASTER_DATA_DIRECTORY=/u05/master/gpseg‐1
5 psql‐h10.10.5.74‐p5432‐Utwo‐dtwo_dw‐c"selectdbid,content,r
ole,preferred_role,mode,status,port,datadirFromg
6 p_segment_configuration;"
方案一:把PGPASSWORD写入环境变量实现免密
exportPGPASSWORD='postgres密码'
1 [oracle@gp_master~]$exportPGPASSWORD='two1234'
2 [oracle@gp_master~]$shgp.sh
3 dbid|content|role|preferred_role|mode|status|port|datadir
4 ‐‐‐‐‐‐+‐‐‐‐‐‐‐‐‐+‐‐‐‐‐‐+‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐+‐‐‐‐‐‐+‐‐‐‐‐‐‐‐+‐‐‐‐‐‐+‐‐‐‐‐‐‐‐‐
‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐
5 1|‐1|p|p|n|u|5432|/u05/master/gpseg‐1
6 2|0|p|p|n|u|6000|/u05/data/primary1/gpseg0
7 3|1|p|p|n|u|6001|/u05/data/primary2/gpseg1
8 4|2|p|p|n|u|6002|/u05/data/primary3/gpseg2
9 5|3|p|p|n|u|6003|/u05/data/primary4/gpseg3
10 (5rows)
方案二:在家目录下建一个.pgpass实现免密
格式信息:主机名或者IP:端口:数据库名:用户名:密码
1 [gpadmin@gp_master~]$cat.pgpass
2 10.10.5.74:5432:two_dw:two:two1234
3 [gpadmin@gp_master~]$psql‐c"selectdbid,content,role,preferred_role,m
ode,status,port,datadirFromgp_segment_configuration;"
4 dbid|content|role|preferred_role|mode|status|port|datadir
5 ‐‐‐‐‐‐+‐‐‐‐‐‐‐‐‐+‐‐‐‐‐‐+‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐+‐‐‐‐‐‐+‐‐‐‐‐‐‐‐+‐‐‐‐‐‐+‐‐‐‐‐‐‐‐‐
‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐
6 1|‐1|p|p|n|u|5432|/u05/master/gpseg‐1
7 2|0|p|p|n|u|6000|/u05/data/primary1/gpseg0
8 3|1|p|p|n|u|6001|/u05/data/primary2/gpseg1
9 4|2|p|p|n|u|6002|/u05/data/primary3/gpseg2
评论