pgAdmin3如何通过SSH隧道进行备份

7

我在亚马逊EC2上运行着一个正在运行的PostgreSQL服务器。我使用在我的Mac上直接配置在pgAdmin3中的ssh隧道连接到它。 我可以进行查询并查看完整的模式,这没有任何问题。

如果我尝试从pgAdmin3 GUI备份数据库,即使连接实际上是打开和工作的,我也会得到以下异常:

/Applications/pgAdmin3.app/Contents/SharedSupport/pg_dump --host localhost --port 5432 --username "MY_USERNAME" --role "MY_ROLE" --no-password  --format custom --encoding UTF8 --verbose --file "/Users/XXX/filename" "DATABASENAME"
pg_dump: [archiver (db)] connection to database "DATABASENAME" failed: could not connect to server: Connection refused
 Is the server running on host "localhost" (::1) and accepting
 TCP/IP connections on port 5432?
could not connect to server: Connection refused
 Is the server running on host "localhost" (127.0.0.1) and accepting
 TCP/IP connections on port 5432?

Process ended with Exitcode 1.

有什么想法,为什么在后台运行的pg_dump无法通过ssh隧道连接?

1
我也在想为什么pgAdmin不支持这个功能。这是已知的错误吗? - Karens
2个回答

1

如果找不到解决方案,一个替代方法是通过终端来完成。

ssh <HOST> "pg_dump -U <USERNAME> -W -h localhost -F c <DATABASENAME> | gzip -c" > ./backup.sql.gz

0

这行代码对我有用:

ssh -o "Compression=no" server_adress "pg_dump -Z9 -Fc -U postgres db_name" > backup_name.dump

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接