PostgreSQL: Dizin / root olarak değiştirilemez


13

Bir tabloyu planet_osm_polygonbir veritabanından osmdiğerine kopyalamaya çalışıyorum test. Ben su postgresve pg_dump.

Sorun: Ancak hatayı alıyorum could not change directory to "/root"ve Password:istem iki kez göründü! pg_dumpOlarak oturum açıldığında gerçekleştirmenin bir yolu var mı 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:

GÜNCELLEME

Sorun # 2:public Bayrağı geçmeme rağmen tablonun şemaya kopyalandığı anlaşılıyor --table="staging.planet_osm_polygon". Neden şemaya kopyalanmadı staging?


psql
dezso

@dezso Kullanıyorum pg_dump, bu gerçekten psqlmi arıyor ? postgresql.org/docs/9.1/static/app-pgdump.html
Nyxynyx

Hayır, ancak komut satırınız içeriyorpsql -h localhost "test" --table "staging.planet_osm_polygon"
dezso

@dezso Oh bunu fark etmedim !! Sanırım her zaman publicşema kopyalanacak
Nyxynyx

Bu sorun, çünkü pgsql / dizini mevcut değil, benim için bu çalışma / var / lib / pgsql içinde oluşturmak zorunda .. Saygılarımla Hiram
Hiram Walker

Yanıtlar:


26

Bunu deneyin: Re: dizini "/ root" olarak değiştiremedi :

Görünüşe göre root hesabından "su postgres" yaptınız, bu yüzden hala root'un ana dizinindesiniz. Tüm postgres hesabının ortamını edindiğinizden emin olmak için "su - postgres" yapmak daha iyi olur. "Man su" okumak burada size yardımcı olabilir.


İki kez şifre istemesi normal mi? Parolanın ikinci kez yazılması maskelemez.
Nyxynyx

1
Belki iki işlem yaptığınız için: 1. pg_dump -h localhost "osm" --table "public.planet_osm_polygon" 2. psql -h localhost "test" --table "staging.planet_osm_polygon"
Ela

4
Sudo ile alternatif: sudo -Hiu postgres
Max Lobur

1

Benim için bu hile yaptı, tırnaklara dikkat edin (')

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'

-HiuFor sudo öğesini not edin veyasu - postgres

ayrıca kök için bir cronjob koyabilirsiniz crontab -e


harika! -Hu yeterli, sanırım burada açıklama: explainshell.com/explain?cmd=sudo+-Hiu
rubo77
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.