2014-05-14 37 views
0

我使用PuTTy連接遠程Ubuntu。我想將另一臺Windows計算機的表格轉移到Ubuntu中的數據庫中。 我搜索在互聯網和代碼無法在PuTTY下正確輸入密碼到pg_dump表

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用戶密碼,然後輸入計算機密碼。但它顯示:

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

這個錯誤是由PuTTY引起的嗎?如果我直接使用Ubuntu計算機會怎樣? 我也用分隔的方式:先用pg_dump,然後用psql。有效。 任何人都可以告訴我爲什麼我不能使用pg_dump傳輸表| psql直接?

回答

0

這樣做效果不好,因爲兩個程序都試圖同時讀取同一個終端輸入流。他們中的一些人會得到你鍵入的每個部分的某些部分,所以密碼被破壞了。

使用a ~/.pgpass file供給口令,或使用PGPASSWORD環境變量:

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

.pgpass文件是優選的。

+0

謝謝! @Ringer。現在我知道這個錯誤的原因。 – Ben

相關問題