PostgreSQL エラー: 致命的: ロール「ユーザー名」が存在しません 質問する

PostgreSQL エラー: 致命的: ロール「ユーザー名」が存在しません 質問する

PostgreSQL 9.1 をセットアップしています。PostgreSQL で何もできません。できないcreatedb、できないcreateuser、すべての操作でエラー メッセージが返されます。

Fatal: role h9uest does not exist

h9uestは私のアカウント名であり、sudo apt-get installこのアカウントで PostgreSQL 9.1 を使用しています。
このアカウントでも同様のエラーが続きますroot

ベストアンサー1

オペレーティング システム ユーザー を使用してデータベースを作成します - 同じ名前のオペレーティング システム ユーザー (この場合は次のユーザー)に対応する必要な権限を持つデータベースpostgresロールを設定していない場合:h9uest

sudo -u postgres -i

推奨どおりここまたはここ

その後、もう一度試してください。exitシステム ユーザーとしての操作が完了したら、と入力しますpostgres

または、次のようにcreateuser単一のコマンドを実行します。postgressudodsreesによって実証された別の回答で。

ポイントは、同じ名前のデータベースロールに一致するオペレーティングシステムユーザーを使用して、アクセスを許可することです。ident認証.postgresは、データベース クラスターを初期化したデフォルトのオペレーティング システム ユーザーです。マニュアル:

データベース システムをブートストラップするために、新しく初期化されたシステムには常に 1 つの定義済みロールが含まれます。このロールは常に「スーパーユーザー」であり、デフォルトでは ( の実行時に変更されない限りinitdb)、データベース クラスターを初期化したオペレーティング システム ユーザーと同じ名前になります。通常、このロールの名前は になりますpostgres。さらにロールを作成するには、まずこの初期ロールとして接続する必要があります。

非標準のユーザー名を使用したり、オペレーティング システムのユーザーが存在しない奇妙な設定について聞いたことがあります。その場合は戦略を調整する必要があります。

詳しくはこちらデータベースロールそしてクライアント認証マニュアルに記載されています。

おすすめ記事