PostgreSQL:ディレクトリを/ rootに変更できません


12

テーブルplanet_osm_polygonをあるデータベースosmから別のデータベースにコピーしようとしていますtest。私su postgresと実行しましたpg_dump

問題:ただし、エラーが発生could not change directory to "/root"し、Password:プロンプトが2回表示されます。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 2013

いいえ、ただしコマンドラインには次のものが含まれていますpsql -h localhost "test" --table "staging.planet_osm_polygon"
dezso

@dezsoああ、気づかなかった!! 私はそれが常にpublicスキーマにコピーされると思います
Nyxynyx

この問題は、pgsql /ディレクトリが存在しないためです。/var/lib/pgsqlに作成する必要があります。この作業は私のために行われます。親切にHiram
Hiram Walker

回答:


25

これを試してください:Re:ディレクトリを "/ root"に変更できませんでした

どうやら、ルートアカウントから「su postgres」を実行したため、まだルートのホームディレクトリにいます。「su-postgres」を実行して、postgresアカウントの環境をすべて取得したことを確認することをお勧めします。ここで「man su」を読むと役立つかもしれません。


パスワードを2回要求するのは正常ですか?もう一度パスワードを入力しても、マスクされません。
Nyxynyx 2013

1
多分あなたは2つの操作をしているので:1. pg_dump -h localhost "osm" --table "public.planet_osm_polygon" 2. psql -h localhost "test" --table "staging.planet_osm_polygon"
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'

-Hiufor sudoに注意するか、su - postgres

あなたはそれをrootのcronjobに置くこともできます crontab -e

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.