是否可以在不输入密码的情况下运行psql?
我的意思是如何在CLI中设置密码字(通过期望或其他方式),所以我不会输入密码
目标 - 我需要从bash脚本运行这个psql
psql -U ambari ambari -c "select * from blueprint" --> HDP
Password for user ambari:
blueprint_name | security_type | security_descriptor_reference | stack_id
----------------+---------------+-------------------------------+----------
HDP | NONE | | 2
(1 row)
我也尝试过但没有成功 - 为什么?
su - postgres -c " psql -tc \"SELECT * FROM BLUEPRINT\" "
ERROR: relation "blueprint" does not exist
LINE 1: SELECT * FROM BLUEPRINT
^
第二
如何捕获“blueprint_name”之后的第一个单词
同时我用这个但不满意这个方法
psql -U ambari ambari -c "select * from blueprint" | grep -v row | tail -2 | awk '{print $1}'
Password for user ambari:
HDP
答案 0 :(得分:2)
是否可以在不输入密码的情况下运行psql?
是的,有可能:
设置PGPASSWORD环境变量。这是手册(http://www.postgresql.org/docs/current/static/libpq-envars.html)
使用.pgpass文件存储密码。这是手册(http://www.postgresql.org/docs/current/static/libpq-pgpass.html)
为该特定用户使用“信任身份验证”(http://www.postgresql.org/docs/current/static/auth-methods.html#AUTH-TRUST)
使用包含所有内容(http://www.postgresql.org/docs/current/static/libpq-connect.html#AEN42532)
答案 1 :(得分:1)
需要使用此“-d ambari”将数据库名称告知为“ambari”
# su - postgres -c "psql -d ambari -tc 'select * from ambari.blueprint'
示例:
# su - postgres -c "psql -d ambari -tc 'select * from ambari.blueprint' "
HDP | NONE | | 6