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
単一のコマンドを実行します。postgres
sudo
dsreesによって実証された別の回答で。
ポイントは、同じ名前のデータベースロールに一致するオペレーティングシステムユーザーを使用して、アクセスを許可することです。ident
認証.postgres
は、データベース クラスターを初期化したデフォルトのオペレーティング システム ユーザーです。マニュアル:
データベース システムをブートストラップするために、新しく初期化されたシステムには常に 1 つの定義済みロールが含まれます。このロールは常に「スーパーユーザー」であり、デフォルトでは ( の実行時に変更されない限り
initdb
)、データベース クラスターを初期化したオペレーティング システム ユーザーと同じ名前になります。通常、このロールの名前は になりますpostgres
。さらにロールを作成するには、まずこの初期ロールとして接続する必要があります。
非標準のユーザー名を使用したり、オペレーティング システムのユーザーが存在しない奇妙な設定について聞いたことがあります。その場合は戦略を調整する必要があります。