无法在PuTTY下正确输入密码到pg_dump表

时间:2014-05-14 15:16:34

标签: linux postgresql

我使用PuTTy连接远程Ubuntu。我想将一个表从另一台Windows计算机转移到Ubuntu中的数据库中。 我在互联网上搜索,代码是

pg_dump -C -t table_name -h 192.168.1.106 -p 5432 database_name1| psql -h localhost -p 5432 -U postgres database_name2

但PuTTy表明:

Password for user postgres: Password:

我需要输入两个密码:一个是Ubuntu用户postgres pw,另一个是windows计算机用户postgres pw。

我猜正确的方法是首先输入Ubuntu用户pw,然后输入计算机pw。但它显示:

pg_dump: [archiver (db)] connection to database "database_name1" failed

这是由PuTTY引起的错误吗?如果我直接使用Ubuntu计算机会是什么样的? 我也使用了分离的方式:首先是pg_dump,然后是psql。有效。 任何人都可以告诉我为什么我不能使用pg_dump转移表psql直接?

1 个答案:

答案 0 :(得分:0)

这样做不会很好,因为两个程序都试图同时从同一个终端输入流中读取数据。其中一些得到你输入的每个部分的一些部分,因此密码被破坏了。

使用a ~/.pgpass file提供密码,或使用PGPASSWORD环境变量:

PGPASSWORD='pw_for_dump' pg_dump .... | PGPASSWORD='pw_for_restore' pg_restore ...

.pgpass文件更可取。