1. ホーム

[解決済み】PostgreSQLのエラーです。Fatal: ロール "username" が存在しません。

2022-03-23 12:17:05

質問

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

Fatal: role h9uest does not exist

h9uest は私のアカウント名で、私は sudo apt-get install このアカウントでPostgreSQL 9.1。

の場合も同様のエラーが発生します。 root のアカウントで使用できます。

解決方法は?

を使用します。 オペレーティング・システム・ユーザー postgres を設定していない限り、データベースを作成することができます。 データベース ロールに必要な権限を与え、オペレーティングシステムの同名のユーザー ( h9uest を使用します。)

sudo -u postgres -i

推奨通り これ または こちら .

そして、もう一度試してみてください。タイプ exit システムユーザーとして操作する場合 postgres .

または 単一コマンドを実行する createuser として postgressudo のように dreesによるデモ を別の回答で紹介しました。

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

<ブロッククオート

データベースシステムを起動するために、初期化されたばかりの システムには、常に1つの定義済みロールが含まれています。このロールは常に 「スーパーユーザー」であり、デフォルトで(ただし initdb ) を初期化したオペレーティング・システム・ユーザーと同じ名前になります。 データベースクラスタ 慣習的に、このロールの名前は postgres . さらにロールを作成するためには、まずこの の初期ロールです。

標準的でないユーザー名や、オペレーティングシステムのユーザーが存在しないなど、奇妙な設定を聞いたことがあります。その場合、戦略を変更する必要があります。

について読む データベースの役割 クライアント認証 をマニュアルに記載しました。