web-dev-qa-db-ja.com

psql:致命的:ユーザーウィンドウ8のパスワード認証に失敗しました

Windowsにpostgresqlをインストールしましたが、インストール時にアカウントのユーザーを作成するように求められます。これにより、コンピューターにpostgresという新しいWindowsユーザーが作成され、パスワードも作成されました。

今、私はWindowsコマンドラインでpsqlを実行したいのですが、パスワードを要求し(ユーザーに言及せずに)、常にエラーを返します:psql: FATAL: password authentication failed for user "Ash".アカウントのパスワードを何度も入力しましたが。

pgadminを使用して、ユーザー "postgres"を "Ash"に変更しましたが、パスワードを再作成する必要があります。ここで手順に従いました: postgresのインストール中に入力したパスワードを忘れました (むしろHost all 127.0.0.1/32 trust私はWindowsにいるため)、しかし、パスワードを変更できるようにpsqlを再度実行すると、エラーが発生します:psql FATAL:could not load pg_hba.conf.すべて一緒に。

なぜロードできないのですか?私がしたことは、追加の認証オプションを追加することだけでした。

また、Windowsユーザーはpostresqlユーザーから分離されていますか、それとも同じですか(互いに依存していますか)?

編集:

ご覧のとおり、アイシャをスーパーユーザーにするかどうかを選択するオプションはありませんでした。またはその問題の他のオプション。

Pgadmin |||も使用しました新しいユーザーを作成しますが、同じエラーがポップアップします: enter image description hereenter image description here

ユーザーが存在しないのに、なぜこれを行うのですか?

12
Sarah cartenz

createuserはコマンドラインユーティリティです。つかいます CREATE USER username WITH PASSWORD 'fred';またはpsqlのSQLレベルでの類似。セミコロンに注意してください。

スクリーンショットで行っていることは、createuserで始まるSQLコマンドを書き始めていますが、セミコロンターミネータがないため、実行するためにサーバーに送信することはありません。そのため、それを行うのは理にかなっていないというエラーが表示されることはありません。

11
Craig Ringer

マシンのユーザーは、PostgreSQLのユーザーとは何の関係もありません。インストーラーは、同じ名前とパスワードでアカウントとPostgreSQLロールを作成するだけです(私の考えでは、これは悪い考えです)が、それらは決して関連していません。 Windowsユーザーはサーバーの実行に使用され、PostgreSQLロールはデータベース内で使用されます。

したがって、最初にユーザーpostgresを使用してサーバーにアクセスし、次に自分用のユーザーを作成する必要があります。サーバー内のユーザー名、またはサーバーの実行ユーザーを変更しないでください!新しいユーザー名を作成し、必要な権限を付与するだけです。

psql -U postgresを使用してサーバーに接続すると、パスワードを要求されます。

Pg_hba.confのパーミッションを確認してください。postgresユーザーにはパーミッションが必要です。管理者としてのみ編集した場合は問題ありませんが、アクセス許可などを取得した場合、混乱する可能性があります。

14
Sami Kuhmonen

私はまったく同じ問題を抱えていましたが、この行で解決しました。

createuser --createdb -U postgres --login -P 'your_new_user'

@ sami-kuhmonenは正しかったが、彼の問題解決のアプローチは私にとってはうまくいかなかった。

1
Aladdin DJOUAMA