web-dev-qa-db-ja.com

psqlの致命的なロールは存在しません

最近、ubuntuの最新バージョンをインストールしましたが、まだ慣れていません。 postgresqlとpgadmin3の接続にいくつか問題がありました。

Pgadmin3で使用できるlocalhostサーバーを作成するために、いくつかのチュートリアルに従ってみました。私は本当にマークを打たなかったので、見つけた答えをインストール、アンインストール、インストール、アンインストール、試行して悪化させたと思います...この時点で、私のpostgresがきれいかどうかわかりません。 2つのpostgresがインストールされている可能性がありますが、もう一度わかりません。私はそれをアンインストールしようとしましたが、基本的にpostgresがSudoにないというエラーがありました。

問題は、コンソールでpsqlを実行しているときにこのエラーが発生することです。

$psql
psql: FATAL: role "user" does not exist 

pg_hba.confが見つかりません。この時点で、他の投稿をたどってさらに事態を悪化させることを恐れています。

どうすればこの作品を作ることができますか?

21
whiplash

コメントで指摘したように、pg_hba.confは問題ないようです。

通常、データベースはpostgresユーザーとして実行されます(ps aux | grep postgresをチェックして、postgresが実行されているユーザー名を確認します)。

そのユーザー、たとえばSudo su - postgresとしてログインし、通常のUbuntuユーザーアカウント(createuser username)に一致するユーザーを作成し、最後に同じ名前のデータベースを作成して所有者を設定します(-O)そのデータベースユーザーに対して、createdb -O username username)のように。

これでpsqlの呼び出しが機能するようになり、pgadmin-デフォルトユーザーであるユーザー名として起動する限り-も機能するはずです。

編集:デフォルトでは、psqlはLinuxユーザー名をdatabase-usernameとdatabase-nameの両方のデフォルト値として使用します。 -U someotherusernameを使用してユーザー名を上書きし、psql someotherdbnameなどのコマンドラインにそのDB名を追加して別のデータベースに接続できます。 psql -lは、既存のデータベースをリストするのに役立つこともあります。

43
niko
Sudo -u postgres createuser user

postgresのすべての権限を持つ新しいユーザーを作成するのに役立ちます

8
watsy0007

Postgresユーザーを使用します。

Sudo su postgres

そして、psqlを使用します。

それでも問題が発生する場合は、このリンクを確認してください: PostgreSQLエラー:致命的:ロール "ユーザー名"が存在しません

2
Amr Arafat

Windows 10では、これはうまく機能します

pg_restore --format = c --verbose --no-owner --no-privileges --dbname = MYDB --username = postgres --no-password --jobs = 8 F:/MYBK.backup

--username =(role)および--no-passwordは必要です

0
Giordhano