PostgreSQL: impossibile cambiare la directory in / root


12

Sto cercando di copiare una tabella planet_osm_polygonda un database osma un altro test. Ho su postgreseseguito il pg_dump.

Problema: comunque sto ricevendo l'errore could not change directory to "/root"e il Password:prompt è comparso due volte! C'è un modo per eseguire il pg_dumpquando si accede come root?

root@lalaland:~# su postgres
postgres@lalaland:/root$ pg_dump -h localhost "osm" --table "public.planet_osm_polygon" | 
    psql -h localhost "test" --table "staging.planet_osm_polygon"
could not change directory to "/root"
could not change directory to "/root"
Password: Password:

AGGIORNARE

Problema n. 2: sembra che la tabella sia copiata nello publicschema anche se ho passato la bandiera --table="staging.planet_osm_polygon". Perché non viene copiato nello schema staging?


Non esiste un parametro --table psqlche potrebbe essere la causa del problema n. 2
dezso

@dezso Sto usando pg_dump, sta davvero chiamando psql? postgresql.org/docs/9.1/static/app-pgdump.html
Nyxynyx,

No, ma la tua riga di comando contienepsql -h localhost "test" --table "staging.planet_osm_polygon"
dezso,

@dezso Oh non me ne sono accorto !! Immagino che sarà sempre copiato nello publicschema allora
Nyxynyx,

Questo problema è dovuto al fatto che pgsql / directory non esiste, devi crearlo in / var / lib / pgsql questo lavoro per me .. Cordiali saluti Hiram
Hiram Walker

Risposte:


25

Prova questo: Ri: impossibile cambiare la directory in "/ root" :

Apparentemente hai fatto "su postgres" dall'account root, quindi sei ancora nella home directory di root. Sarebbe meglio fare "su - postgres" per assicurarsi di aver acquisito tutto l'ambiente dell'account postgres. Leggere "man su" potrebbe aiutarti.


È normale che richieda la password due volte? Digitare la password una seconda volta non la maschera.
Nyxynyx,

1
Forse perché stai eseguendo due operazioni: 1. pg_dump -h localhost "osm" --table "public.planet_osm_polygon" 2. psql -h localhost "test" --table "staging.planet_osm_polygon"
Ela

4
Alternativa con sudo: sudo -Hiu postgres
Max Lobur

1

Per me questo ha funzionato, presta attenzione alle virgolette (')

sudo -Hiu postgres 'pg_dump --column-inserts --data-only --table=someTable entities_db > /var/backups/anywhere/$(date +%Y%m%d_%H%M%S)_someTable.sql'

Nota -Hiuper for sudo o usesu - postgres

puoi anche metterlo in un cronjob per root con crontab -e

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.