PostgreSQL: Nie można zmienić katalogu na / root


12

Próbuję skopiować tabelę planet_osm_polygonz jednej bazy danych osmdo drugiej test. Ja su postgresi wykonał pg_dump.

Problem: Jednak pojawia się błąd could not change directory to "/root"i Password:monit pojawił się dwukrotnie! Czy istnieje sposób na wykonanie tego pg_dumppo zalogowaniu jako 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:

AKTUALIZACJA

Problem nr 2: Wygląda na to, że tabela została skopiowana do publicschematu, mimo że mijałem flagę --table="staging.planet_osm_polygon". Dlaczego nie jest kopiowane do schematu staging?


Nie ma parametru --tabela psql, który mógłby być przyczyną problemu nr 2
dezso

@dezso Używam pg_dump, czy to faktycznie dzwoni psql? postgresql.org/docs/9.1/static/app-pgdump.html
Nyxynyx 18.04.13

Nie, ale twoja linia poleceń zawierapsql -h localhost "test" --table "staging.planet_osm_polygon"
dezso 18.04.13

@dezso Oh, nie zauważyłem tego !! Sądzę, że zawsze będzie to publicwtedy skopiowane do schematu
Nyxynyx

Ten problem występuje, ponieważ katalog pgsql / nie istnieje, musisz go utworzyć w / var / lib / pgsql to dzieło dla mnie .. Z poważaniem Hiram
Hiram Walker

Odpowiedzi:


26

Spróbuj tego: Re: nie można zmienić katalogu na „/ root” :

Najwyraźniej zrobiłeś „su postgres” z konta root, więc wciąż jesteś w katalogu głównym roota. Lepiej byłoby zrobić polecenie „su - postgres”, aby upewnić się, że nabyłeś całe środowisko konta postgres. Czytanie „man su” może ci w tym pomóc.


Czy to normalne, że dwukrotnie pyta o hasło? Wpisanie hasła po raz drugi nie maskuje go.
Nyxynyx

1
Może dlatego, że robisz dwie operacje: 1. pg_dump -h localhost "OSM" --table "public.planet_osm_polygon" 2. psql -h localhost "test" --table "staging.planet_osm_polygon"
Ela

4
Alternatywa dla sudo: sudo -Hiu postgres
Max Lobur,

1

Dla mnie to załatwiło sprawę, zwróć uwagę na cytaty (')

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'

Zwróć uwagę na -Hiufor sudo lub użyjsu - postgres

możesz także umieścić to w cronjob dla roota crontab -e


wspaniały! Chyba wystarczy -hu, wyjaśnienie tutaj: wyjaśniahell.com
explain?cmd=sudo
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.