【发布时间】:2017-05-05 17:56:18
【问题描述】:
我有一个处理文档的 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 编写正确的命令,使用用户/密码连接到另一个数据库并发出命令?
我尝试了一个链接,但似乎没有设置密码: run psql query in bash
谢谢!
【问题讨论】: