0

私は有名になっていた

psql: could not connect to server: No such file or directory
    Is the server running locally and accepting
    connections on Unix domain socket "/var/pgsql_socket/.s.PGSQL.5432"?

createdbOSX Mountain Lion のターミナルで を実行しようとするとエラーが発生するため、こちらexport PATH=/opt/local/lib/postgresql92/bin:$PATHの手順に従って、入力すると my .bash_profileand nowに追加しました(以前はwhich psqlgetだった場所)。/opt/local/lib/postgresql92/bin/psql/usr/bin/psql

ただし、createdb database今試してみると、知らないパスワードの入力を求められ (デフォルトのユーザー パスワードではありません)、2 回間違って入力すると、次のようになります。

createdb: could not connect to database template1: 
FATAL:  password authentication failed for user "username"

usernameターミナルのデフォルトのユーザー名はどこですか。私がやろうとしているのは、virtualenv 内にある Django プロジェクトからアクセスできる PostgreSQL データベースを作成することです。PostgreSQL 9.2 を使用しています。私は何を間違っていますか?

4

1 に答える 1

2

createdb新しいデータベースを作成する SQL コマンドを実行するために、内部で PostgreSQL に接続する必要があります。デフォルトでは、OS ユーザー名を使用します。エラー メッセージによると、このユーザーがデータベース ユーザーとして存在しない (もっともらしい) か、覚えていないパスワードを持っているため、たまたま失敗します。

これを修正するには、インストール パスを考えると妥当と思われるmacportsパッケージを使用していると仮定して、次のコマンドを実行します。

sudo su postgres -c '/opt/local/lib/postgresql92/bin/createdb dbname'

新しいデータベースは postgres ユーザーによって所有されますが、これは必ずしも理想的ではありません。より賢明な選択は、あなたのユーザー名で通常の db ユーザーを作成し、それをデータベースの所有者にすることです:

sudo su postgres -c '/opt/local/lib/postgresql92/bin/createuser username'
sudo su postgres -c '/opt/local/lib/postgresql92/bin/createdb -O username dbname'

編集createuserコマンドはこれらの質問を促します(マンページから):

      $ createuser joe
       Shall the new role be a superuser? (y/n) n
       Shall the new role be allowed to create databases? (y/n) n
       Shall the new role be allowed to create more new roles? (y/n) n

postgres最後の 2 つに yes と答えると、新しいユーザーに十分な権限が与えられ、後で を介して使用できるようになりますsudo。たとえば、次のように動作します。

createuser -U username newuser
createdb -U username newdatabase
于 2013-04-02T16:40:06.437 に答える