前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >使用psql客户端免交互执行Greenplum SQL

使用psql客户端免交互执行Greenplum SQL

原创
作者头像
岳涛
修改2021-09-26 17:21:16
2.4K0
修改2021-09-26 17:21:16
举报
文章被收录于专栏:大数据生态大数据生态

说明

本文描述问题及解决方法同样适用于 腾讯云 云数据仓库 PostgreSQL(CDWPG)

背景

Greenplum底层是postgresql,客户端自然也是psql。由于psql本身不支持通过参数来指定密码进行登录,所以需要通过别的方式来实现,这里介绍三种可以实现免交互/免密执行SQL的方法。

实现方案

  • Demo SQL文件
代码语言:javascript
复制
[gpadmincloud@mdw-snova-90g4jkrm ~]$ cat demo.sql 
TRUNCATE test_timestamp;
INSERT INTO test_timestamp VALUES('test',now());
SELECT * FROM test_timestamp;

方案一:把PGPASSWORD写入环境变量实现免密

export PGPASSWORD='postgres密码'

代码语言:javascript
复制
[gpadmincloud@mdw-snova-90g4jkrm ~]$ export PGPASSWORD='dy1'
[gpadmincloud@mdw-snova-90g4jkrm ~]$ psql -d dy_test -U dy1 -h 10.0.38.133 -f demo.sql
TRUNCATE TABLE
INSERT 0 1
 name |            time            
------+----------------------------
 test | 2021-03-17 18:55:48.139335
(1 row)

方案二:在家目录下建一个.pgpass实现免密

格式信息:主机名或者IP:端口:数据库名:用户名:密码

代码语言:javascript
复制
[gpadmincloud@mdw-snova-90g4jkrm ~]$ cat .pgpass
10.0.38.133:5432:dy_test:dy1:dy1
[gpadmincloud@mdw-snova-90g4jkrm ~]$ psql -d dy_test -U dy1 -h 10.0.38.133 -f demo.sql
TRUNCATE TABLE
INSERT 0 1
 name |            time            
------+----------------------------
 test | 2021-03-17 18:59:03.471346
(1 row)

方案三:把PGPASSWORD写在一条命令中执行实现免交互

一条命令执行,将密码信息写在前面,用空格分隔:

PGPASSWORD=密码 psql -d 数据库名 -U 数据库名 -h 主机名

代码语言:javascript
复制
[gpadmincloud@mdw-snova-90g4jkrm ~]$ PGPASSWORD=dy1 psql -d dy_test -U dy1 -h 10.0.38.133 -f demo.sql
TRUNCATE TABLE
INSERT 0 1
 name |            time            
------+----------------------------
 test | 2021-03-17 19:00:29.765707
(1 row)

小结

可以看到,有很多方法都可以实现免交互/免密来执行psql。当然,没有最好的方法,只有最适合的方法。

考虑安全性,可以选择方案一和方案二;考虑灵活性,则可以选择方案三。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 说明
  • 背景
  • 实现方案
    • 方案一:把PGPASSWORD写入环境变量实现免密
      • 方案二:在家目录下建一个.pgpass实现免密
        • 方案三:把PGPASSWORD写在一条命令中执行实现免交互
        • 小结
        相关产品与服务
        大数据
        全栈大数据产品,面向海量数据场景,帮助您 “智理无数,心中有数”!
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档