PostgreSQL : 디렉토리를 / root로 변경할 수 없습니다


12

planet_osm_polygon한 데이터베이스 osm에서 다른 데이터베이스 로 테이블을 복사하려고합니다 test. 나는 su postgres수행했다 pg_dump.

문제 : 그러나 오류가 발생 could not change directory to "/root"하고 Password:프롬프트가 두 번 나타납니다! 로 pg_dump로그인했을 때 수행 할 수있는 방법이 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:

최신 정보

문제 # 2 :public 플래그를 전달 했는데도 테이블이 스키마에 복사 된 것 같습니다 --table="staging.planet_osm_polygon". 왜 스키마에 복사되지 staging않습니까?


에 --table 매개 변수가 없습니다. psql문제 # 2의 원인 일 수 있습니다.
dezso

@dezso 내가 사용 pg_dump하고 있는데 실제로 전화하고 psql있습니까? postgresql.org/docs/9.1/static/app-pgdump.html
Nyxynyx

아니요, 그러나 명령 줄에는psql -h localhost "test" --table "staging.planet_osm_polygon"
dezso

@dezso 오, 나는 그것을 알아 차리지 못했다!! 나는 그것이 항상 public스키마에 복사 될 것 같아요
Nyxynyx

를 pgsql / 디렉토리가 존재하지 않기 때문에이 문제가, 당신은 그것을 만들 필요가있다로 / var / lib / pgSQL의 나를 위해이 작품은 .. 종류는 히람에 관하여
히람 워커

답변:


26

이것을보십시오 : Re : 디렉토리를 "/ root"로 변경할 수 없습니다 :

루트 계정에서 "su postgres"를 했으므로 여전히 루트의 홈 디렉토리에 있습니다. 모든 postgres 계정 환경을 확보하려면 "su-postgres"를 수행하는 것이 좋습니다. "man su"를 읽으면 여기서 도움이 될 수 있습니다.


암호를 두 번 묻는 것이 정상입니까? 암호를 다시 입력해도 마스크가 표시되지 않습니다.
Nyxynyx

1
아마도 두 가지 작업을 수행하기 때문일 수 있습니다. 1. pg_dump -h localhost "osm"--table "public.planet_osm_polygon"2. psql -h localhost "test"
Ela

4
sudo와의 대안 : sudo -Hiu postgres
Max Lobur

1

나에게 이것은 속임수를 쓰고 따옴표에주의를 기울입니다 ( ')

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'

-Hiusudo에 유의 하거나 사용하십시오.su - postgres

루트를 위해 cronjob에 넣을 수도 있습니다. crontab -e


큰! : 나는 -hu 여기, 설명을 충분 생각 explainshell.com/explain?cmd=sudo+-Hiu
rubo77
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.