スーパーユーザーを削除するために何もせずにこれが起こったのは奇妙です。私はあなたが得ているエラーが正しいかのようにこれに答えるつもりですが、何か他のことが起こっていると思われます。
エラーメッセージが表示される場合は、メインのスーパーユーザー(postgres
)はあなたのデータベースに存在しません。あなたがこれを唯一のスーパーユーザと言いましたので、それを元に戻すにはシングルユーザモードでpostgresqlサーバを起動する必要があります。
私はpostgresql 9.5でUbuntu Server 16.04を実行しています。ディレクトリは(私にとってそれはまたpostgres
と呼ばれる)は、データベースを所有するOSユーザーにあなたのシステム
サーバーを停止し
sudo service postgres stop
ログに異なる場合があります。私は以下を使用します:
sudo -u postgres bash
PostgreSQLサーバをシングルユーザモードで実行します。バックエンド・プロンプトから
/usr/lib/postgresql/9.5/bin/postgres --single -D /etc/postgresql/9.5/main/
PostgreSQL stand-alone backend 9.5.4
backend>
:クラスタおよびデータベース名のconfigディレクトリを指定する必要があります。これは、あなたのバックエンドプロンプトを与える必要があります(私のクラスタは、メイン9.5 /で、デシベルもmain
と呼ばれています) superuser
privilageでpostgres
と呼ばれる新しいユーザーを追加します。
backend> create user postgres superuser;
backend>
- 終了し、シングルユーザーモード。私は
ctrl-d
を押します。
あなた自身でログインしてください。私にとってそれはただです:PostgreSQLはとして実行されているユーザーを見つけるために
sudo service postgres start
:
exit
は、サーバを起動し。サーバーがまだ実行中であることを確認してください(つまり、停止した場合はsudo service postgres start
)。次に実行中のプロセスを探します:
ps -ef | grep postgres
私にとって、これは次のようになります。私の左側の列にはpostgres
と書かれています。これは、自分のデータベースクラスタを実行しているOSユーザです。
postgres 25536 1 0 16:40 ? 00:00:01 /usr/lib/postgresql/9.5/bin/postgres -D /var/lib/postgresql/9.5/main -c config_file=/etc/postgresql/9.5/main/postgresql.conf
postgres 25539 25536 0 16:40 ? 00:00:00 postgres: checkpointer process
postgres 25540 25536 0 16:40 ? 00:00:00 postgres: writer process
postgres 25541 25536 0 16:40 ? 00:00:00 postgres: wal writer process
postgres 25542 25536 0 16:40 ? 00:00:00 postgres: autovacuum launcher process
postgres 25543 25536 0 16:40 ? 00:00:00 postgres: stats collector process
couling 32550 23363 0 21:35 pts/0 00:00:00 grep --color=auto postgres
は時々、このユーザーがログインするように設定されることはありませんので、お使いのOSのユーザーがpostgres
と呼ばれているならば、使用してみてください:あなたは任意の有効なを必要とするデータベース名については
sudo -u postgres bash
をあなたのDB名を覚えていない場合は、postgres
またはtemplate0
を試してください。
非常に奇妙なことにスーパーユーザーアカウントの名前を変更しましたか?あなたが追加した別のスーパーユーザーアカウントがありますか? –
私は変わりませんでした。インストール時にpostgressのみスーパーユーザーが作成され、パスワードが追加されます –