Postgresをインストールしたばかりで、さまざまな設定を1〜2時間いじっていました。
postgres-userに変更できないにこだわっています
$ su - postgres
は次のエラーを生成します:su: unknown login: postgres
$ Sudo -u postgres psql
は次のエラーを生成します:Sudo: unknown user: postgres
これらの試行は、通常のユーザーとして行われます。それらをルートとして試しても、まったく同じ結果になります。 OS XにHomebrew経由でpostgresをインストールしましたが、何度も指示を読みました。
psql
:デフォルトのユーザー名でログインします
psql -U postgres
:postgresユーザーとしてログインします
須藤は私には必要ないようです。
OS XのpostgresデータベースにはPostgres.appを使用しています。インストールが機能し、データベースサーバーが正常に起動したことを確認するという頭痛の種を取り除きました。こちらをご覧ください: http://postgresapp.com
編集:引数の使用を修正した@Erwin Brandstetterの功績。
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
デフォルトで動作します。
OS Xは、システムアカウント名の前に「_」を付ける傾向があります。使用しているOS Xのバージョンはわかりませんが、少なくとも10.8と10.9では、_postgresユーザーはデフォルトのインストールに存在します。このアカウントにはパスワードがないため、su
にこのアカウント(rootを除く)にアクセスできないことに注意してください。一方、Sudo -u _postgres
は正常に機能するはずです。
psql -U postgres
データベース名:postgresおよびユーザー名:postgresの場合、私にとってはうまくいきました。したがって、Sudoを記述する必要はありません。
そして、他のdbの場合、あなたは試すことができます
psql -U yourdb postgres
Postgresヘルプに記載されているとおり:
psql [OPTION]... [DBNAME [USERNAME]]
ここでの議論と回答は私にとって非常に役に立ちました。
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