web-dev-qa-db-ja.com

Postgresユーザーは存在しませんか?

Postgresをインストールしたばかりで、さまざまな設定を1〜2時間いじっていました。

postgres-userに変更できないにこだわっています

$ su - postgresは次のエラーを生成します:su: unknown login: postgres

$ Sudo -u postgres psqlは次のエラーを生成します:Sudo: unknown user: postgres

これらの試行は、通常のユーザーとして行われます。それらをルートとして試しても、まったく同じ結果になります。 OS XにHomebrew経由でpostgresをインストールしましたが、何度も指示を読みました。

78
krystah

psql:デフォルトのユーザー名でログインします

psql -U postgres:postgresユーザーとしてログインします

須藤は私には必要ないようです。

OS XのpostgresデータベースにはPostgres.appを使用しています。インストールが機能し、データベースサーバーが正常に起動したことを確認するという頭痛の種を取り除きました。こちらをご覧ください: http://postgresapp.com

編集:引数の使用を修正した@Erwin Brandstetterの功績。

79
danielM

psql --helpによって、データベース名のオプションを設定しなかった場合(-dオプションなし)はユーザー名になり、-Uを実行しなかった場合、データベースのユーザー名はユーザー名など.

ただし、initdb(最初のデータベースを作成する)コマンドでは、データベース名としてユーザー名がありません。 postgresという名前のデータベースがあります。 最初のデータベースは、データ記憶領域が初期化されるときに常にinitdbコマンドによって作成されます。このデータベースはpostgresと呼ばれます。

そのため、ユーザー名という別のデータベースがない場合は、psqlコマンドが機能するようにpsql -d postgresを実行する必要があります。そして、それはデフォルトで-dオプションを提供するようです、psql postgresも動作します。

ユーザー名と同じ別のデータベース名を作成した場合(createdbを使用して実行する必要があります)、psqlのみをコマンドできます。そして、最初のデータベースのユーザー名がbrewによってマシンのユーザー名として設定されるようです。

psql -d <first database name> -U <first database user name>

または、

psql -d postgres -U <your machine username>
psql -d postgres

デフォルトで動作します。

18
kangkyu

OS Xは、システムアカウント名の前に「_」を付ける傾向があります。使用しているOS Xのバージョンはわかりませんが、少なくとも10.8と10.9では、_postgresユーザーはデフォルトのインストールに存在します。このアカウントにはパスワードがないため、suにこのアカウント(rootを除く)にアクセスできないことに注意してください。一方、Sudo -u _postgresは正常に機能するはずです。

17
Gordon Davisson
psql -U postgres

データベース名:postgresおよびユーザー名:postgresの場合、私にとってはうまくいきました。したがって、Sudoを記述する必要はありません。

そして、他のdbの場合、あなたは試すことができます

psql -U yourdb postgres

Postgresヘルプに記載されているとおり:

psql [OPTION]... [DBNAME [USERNAME]]
3
cloudberry

ここでの議論と回答は私にとって非常に役に立ちました。

psql:FATAL:データベース "<user>"は存在しません

3
daroo

su - postgresおよびSudo -u postgres psqlを使用すると、kryshahとまったく同じエラーが発生します。 DanielMの答えもエラーになります。

設定が間違っている場合に出力

ただし、przbabuのコメントから回答してください。

masi$ psql
psql: FATAL:  database "masi" does not exist
masi$ psql -U postgres
psql: FATAL:  role "postgres" does not exist
masi$ psql postgres
psql (9.4.1)
Type "help" for help.

この問題の一部は、OSXの所有者設定にあると思います

masi$ ls -al /Users/
total 0
drwxr-xr-x   7 root      admin  238 Jul  3 09:50 .
drwxr-xr-x  37 root      wheel 1326 Jul  2 19:02 ..
-rw-r--r--   1 root      wheel    0 Sep 10  2014 .localized
drwxrwxrwt   7 root      wheel  238 Apr  9 19:49 Shared
drwxr-xr-x   2 root      admin   68 Jul  3 09:50 postgres
drwxr-xr-x+ 71 masi      staff 2414 Jul  3 09:50 masi

しかし、Sudo chown -R postgres:staff /Users/postgresを実行すると、chown: invalid user: ‘postgres:staff’が得られます。

要するに、これは問題の解決策ではありません。 postgresインストールで提供されるツールを使用して、ユーザーとデータベースを作成します。

正しい設定と出力を取得するには

Postgresのインストール後に、データベースシステムに新しいユーザーを追加するための特定のコマンドがあります。 initdbの後、説明に従って次のコマンドを実行します here

createuser --pwprompt postgres
createdb -Opostgres -Eutf8 masi_development
psql -U postgres -W masi_development

パスワード要求を常に回避するには、 here のように3つの選択肢があります。

解決策は簡単です。
ルートとしてログイン
以降:

su - postgres

psql
1
el fuser