在bash中从另一台服务器运行postgres查询

在bash中从另一台服务器运行postgres查询,bash,psql,Bash,Psql,我有一个处理文档的Ubuntu服务器,另一个有数据库(postgresql 9.3) 我运行了psql-?以了解如何连接到另一个数据库,最后的命令是: psql -U postgres -W -h 1.2.3.4 -d testdb -p 5432 它可以工作,但我必须在发出命令后键入密码 我试图在bash脚本中修改此命令: #!/bin/bash psql -U postgres -W mypassword -h 1.2.3.4 -d testdb -p 5432 << EOF

我有一个处理文档的Ubuntu服务器,另一个有数据库(postgresql 9.3)

我运行了
psql-?
以了解如何连接到另一个数据库,最后的命令是:

psql -U postgres -W -h 1.2.3.4 -d testdb -p 5432
它可以工作,但我必须在发出命令后键入密码

我试图在bash脚本中修改此命令:

#!/bin/bash
psql -U postgres -W mypassword -h 1.2.3.4 -d testdb -p 5432 << EOF
select * from mytable;
\q
EOF
在另一台服务器中,脚本在本地数据库上运行,我的工作脚本是:

su - postgres -c "psql myDatabase" << EOF
select * from "myOtherTable";
\q
EOF
su-postgres-c“psqlmydatabase”Try

见:


或者~/.pgpass文件

好链接!谢谢,我检查了它们,工作时会标记你的答案(:起初它一直在询问密码,然后就停止了。测试服务器重新启动,脚本运行并工作了!我尝试了.pgpass解决方案。在根文件夹中创建此文件,权限为0600,脚本中的命令是
psql-U postgres-h 1.2.3.4-d dbname
su - postgres -c "psql myDatabase" << EOF
select * from "myOtherTable";
\q
EOF
PGPASSWORD=yourpass psql -U postgres -W -h 1.2.3.4 -d testdb -p 5432