Linux 无法在PuTTY下正确输入密码以转储表格

Linux 无法在PuTTY下正确输入密码以转储表格,linux,postgresql,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 但油灰显示: Password for user postgres: Password: 我需要输入两个密码:一个是Ubun

我使用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
但油灰显示:

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

我想正确的方法是先输入Ubuntu用户pw,然后输入计算机pw。但它表明:

pg_dump: [archiver (db)] connection to database "database_name1" failed
这个错误是由油灰引起的吗?如果我直接使用Ubuntu电脑会是什么样子? 我还使用了分离的方式:首先是pg_转储,然后是psql。成功了。
有人能告诉我为什么不能直接使用pg|dump | psql传输表吗?

这不会很好,因为两个程序都试图同时从同一个终端输入流读取数据。他们中的一些人得到了你输入的每一部分,所以密码被弄乱了

用于提供密码,或使用PGPASSWORD环境变量:

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

最好使用.pgpass文件。

谢谢@套环。现在我知道了这个错误的原因。