运行 来自另一台服务器的 postgres 查询,在 bash
Run postgres query from another server, in bash
我有一个 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
不用说这不是正确的命令。
另外,密码没有被识别为密码,报错:
psql: warning: extra command-line argument "mypassword" ignored
Password for user postgres:
psql: FATAL: password authentication failed for user "postgres"
FATAL: password authentication failed for user "postgres"
在另一台服务器上,脚本在本地数据库上运行,我的工作脚本是:
su - postgres -c "psql myDatabase" << EOF
select * from "myOtherTable";
\q
EOF
问题很简单,如何为 bash 编写正确的命令,以使用 user/password 连接到另一个数据库并发出命令?
A link 我试过了,但是好像没有设置密码:
run psql query in bash
谢谢!
尝试
PGPASSWORD=yourpass psql -U postgres -W -h 1.2.3.4 -d testdb -p 5432
参见:https://www.postgresql.org/docs/9.3/static/libpq-envars.html
或 ~/.pgpass 文件 https://www.postgresql.org/docs/9.3/static/libpq-pgpass.html
我有一个 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
不用说这不是正确的命令。 另外,密码没有被识别为密码,报错:
psql: warning: extra command-line argument "mypassword" ignored
Password for user postgres:
psql: FATAL: password authentication failed for user "postgres"
FATAL: password authentication failed for user "postgres"
在另一台服务器上,脚本在本地数据库上运行,我的工作脚本是:
su - postgres -c "psql myDatabase" << EOF
select * from "myOtherTable";
\q
EOF
问题很简单,如何为 bash 编写正确的命令,以使用 user/password 连接到另一个数据库并发出命令?
A link 我试过了,但是好像没有设置密码: run psql query in bash
谢谢!
尝试
PGPASSWORD=yourpass psql -U postgres -W -h 1.2.3.4 -d testdb -p 5432
参见:https://www.postgresql.org/docs/9.3/static/libpq-envars.html
或 ~/.pgpass 文件 https://www.postgresql.org/docs/9.3/static/libpq-pgpass.html