Passwort unter PuTTY kann nicht richtig eingegeben werden, um eine Tabelle pg_dump - linux, postgresql

Ich benutze PuTTy, um ein entferntes Ubuntu zu verbinden. Ich möchte eine Tabelle von einem anderen Windows-Computer in eine Datenbank in Ubuntu übertragen. Ich habe im Internet gesucht und der Code ist

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

Aber die PuTTy zeigt:

Password for user postgres: Password:

Ich muss zwei Passwort eingeben: eins ist der Ubuntu-Benutzer postgres pw, und das andere ist Windows Computer-Benutzer postgres pw.

Ich denke, der richtige Weg ist, zuerst Ubuntu-Benutzer pw und dann den Computer pw einzugeben. Aber es zeigt:

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

Wird dieser Fehler von PuTTY verursacht? Wie wäre es, wenn ich den Ubuntu Computer direkt benutze? Ich habe auch den getrennten Weg benutzt: zuerst pg_dump, dann psql. Es funktionierte. Kann mir jemand sagen, warum ich keine Tabelle mit pg_dump | übertragen kann psql direkt?

Antworten:

0 für die Antwort № 1

Das funktioniert nicht gut, weil beide Programme versuchen, gleichzeitig aus dem gleichen Terminal-Eingabestream zu lesen. Einige von ihnen erhalten Teile von jedem von dem, was Sie eingeben, so dass Passwörter verfälscht werden.

Benutzen ein ~/.pgpass Datei um die Passwörter zu liefern, oder benutzen Sie die PGPASSWORD Umgebungsvariable:

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

Das .pgpass Datei ist vorzuziehen.


Am beliebtesten