最近、ubuntuの最新バージョンをインストールしましたが、まだ慣れていません。 postgresqlとpgadmin3の接続にいくつか問題がありました。
Pgadmin3で使用できるlocalhostサーバーを作成するために、いくつかのチュートリアルに従ってみました。私は本当にマークを打たなかったので、見つけた答えをインストール、アンインストール、インストール、アンインストール、試行して悪化させたと思います...この時点で、私のpostgresがきれいかどうかわかりません。 2つのpostgresがインストールされている可能性がありますが、もう一度わかりません。私はそれをアンインストールしようとしましたが、基本的にpostgresがSudoにないというエラーがありました。
問題は、コンソールでpsqlを実行しているときにこのエラーが発生することです。
$psql
psql: FATAL: role "user" does not exist
pg_hba.conf
が見つかりません。この時点で、他の投稿をたどってさらに事態を悪化させることを恐れています。
どうすればこの作品を作ることができますか?
コメントで指摘したように、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
は、既存のデータベースをリストするのに役立つこともあります。
Sudo -u postgres createuser user
postgresのすべての権限を持つ新しいユーザーを作成するのに役立ちます
Postgresユーザーを使用します。
Sudo su postgres
そして、psqlを使用します。
それでも問題が発生する場合は、このリンクを確認してください: PostgreSQLエラー:致命的:ロール "ユーザー名"が存在しません
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は必要です