私はPostgres初心者です。
Mac 用の postgres.app をインストールしました。psql コマンドをいじっていたら、誤って postgres データベースを削除してしまいました。何が入っていたのかわかりません。
現在チュートリアルを作成中です:http://www.rosslaird.com/blog/building-a-project-with-mezzanine/
そして私は行き詰まっていますsudo -u postgres psql postgres
エラーメッセージ:psql: FATAL: role "postgres" does not exist
$ どのpsql
/Applications/Postgres.app/Contents/MacOS/bin/psql
これは印刷されたものですpsql -l
List of databases
Name | Owner | Encoding | Collate | Ctype | Access privileges
------------+------------+----------+---------+-------+---------------------------
user | user | UTF8 | en_US | en_US |
template0 | user | UTF8 | en_US | en_US | =c/user +
| | | | | user =CTc/user
template1 | user | UTF8 | en_US | en_US | =c/user +
| | | | | user =CTc/user
(3 rows)
では、どのような手順を踏めばよいでしょうか? psql に関連するものをすべて削除して、すべてを再インストールすればよいのでしょうか?
助けてくれてありがとう!
ベストアンサー1
注意: homebrew を使用して postgres をインストールした場合は、以下の @user3402754 と @originalhat のコメントを参照してください。
エラー メッセージは、データベースが見つからないことではなく、ロールが見つからないことを示していることに注意してください。ログイン プロセスの後半で、データベースが見つからないという問題が発生する可能性もあります。
psql
しかし、最初のステップは、不足しているロールを確認することです。コマンドの出力は何ですか\du
? 私の Ubuntu システムでは、関連する行は次のようになります。
List of roles
Role name | Attributes | Member of
-----------+-----------------------------------+-----------
postgres | Superuser, Create role, Create DB | {}
を持つロールが少なくとも 1 つない場合はsuperuser
、問題が発生します :-)
もしあれば、それを使ってログインできます。コマンドの出力を見ると、 とデータベース\l
の権限は、Ubuntu システムのスーパーユーザー と同じです。したがって、セットアップではスーパーユーザー を単純に使用していると思います。したがって、次のコマンドを使ってログインできます。user
template0
template1
postgres
user
sudo -u user psql user
user
実際に DB スーパーユーザーである場合は、別の DB スーパーユーザーと、そのユーザー用のプライベートの空のデータベースを作成できます。
CREATE USER postgres SUPERUSER;
CREATE DATABASE postgres WITH OWNER postgres;
しかし、postgres.app のセットアップではこれが行われていないようなので、これも行わないでください。チュートリアルを簡単に適応してください。