2016-07-20 17 views
6

私はpostgresで新しいデータベースを作成して使用しようとしています。以下のコマンドでdbをロードしようとすると:PostgresはUbuntu 14.04でディレクトリを変更できません

sudo -u postgres psql 

このエラーが発生します。

は "/ホーム/ラップトップ/ Dropboxの/ JS/HW/HAS-多の関係" にディレクトリを変更できませんでした:許可が psqlの(9.3.13)ヘルプは、 "ヘルプ" と入力を否定しました。

nautilusのフォルダのアクセス権をrootとして変更しようとしました。このコマンドは、フォルダがルート(cpとcd /)に変更されたときに期待通りに動作します。

答えて

7

それはあなたのシェルのCWD(現在の作業ディレクトリ)のように聞こえる

/home/laptop/Dropbox/js/hw/Has-Many-Relationships 

と「postgresの」ユーザーは、そのディレクトリへのアクセス権を持っていないということです。

しかし、次の行では、実行中のPostgreSQLサーバと通信することができますが、次の行は共有しません。

これはローカルマシン上の「完全に使い捨て」デ​​ータベースインスタンス(ラップトップ)である場合、これは役に立つかもしれ:

http://johnmee.com/how-to-reinstall-postgresql-on-ubuntu

完全にすべてのpostgresパッケージ(だけでなく、仮想パッケージ)を削除します。この方法では、 PostgreSQLの新規インストールからやり直すことができます。

あなたは、PostgreSQLのクリーンインストールを持ってたら、rootとして、これを試してみてください。

# cd ~postgres/ 
# sudo -u postgres psql 

とエラーが繰り返されないかどうかを確認します。

希望に役立ちます!

+2

ありがとう!それは働いているようです。非常に奇妙なのは、postgresはアクセス権を持っているがそのアクセス権を使用できないユーザーだということです。 –

+0

w00t!お役に立てて嬉しいです。あなたは 'postgres'ユーザーとして実行していることを忘れないでください。そのユーザーは自分自身のホームディレクトリに書き込む権限しか持ちません。このエラーメッセージは、データベースへの接続自体の問題ではありませんが、ローカルのCLIクライアントで問題が発生し、ディレクトリルートにアクセスする権限を持たない 'postgres'ユーザーとして実行される可能性があります。 –

+0

@JesseAdelman私はどのように私のホームディレクトリ内のいくつかのフォルダにpostgresユーザーのアクセスを許可するのだろうか?私はシンボリックリンクを介して別のハードディスクにデータを保存したいので、これは私が必要と考えるものです。 –

関連する問題