PostgreSQL 8.4、Postgresクライアント、およびPgadmin 3をインストールしました。コンソールクライアントとPgadminの両方で、ユーザ "postgres"の認証に失敗しました。ユーザーは "postgres"、パスワードは "postgres"と入力しました。しかし今、認証は失敗します。私はこの問題なしで数回前にそれをしました。私は何をすべきか?そして何が起こりますか?
psql -U postgres -h localhost -W
Password for user postgres:
psql: FATAL: password authentication failed for user "postgres"
FATAL: password authentication failed for user "postgres"
私の記憶が正しければ、ユーザpostgres
にはデフォルトでDBパスワードがUbuntuに設定されていません。つまり、postgres
OSユーザーアカウントを使用することによってのみ、そのアカウントにログインできます。
あなたができるボックスにroot
のアクセス権があるとします。
Sudo -u postgres psql
それがdatabase "postgres" does not exists
エラーで失敗するなら、あなたはたぶんUbuntuまたはDebianサーバ上にいないでしょう:-)この場合、単にコマンドにtemplate1
を追加してください:
Sudo -u postgres psql template1
これらのコマンドのいずれかがエラーpsql: FATAL: password authentication failed for user "postgres"
で失敗した場合は、ファイル/etc/postgresql/8.4/main/pg_hba.conf
を確認してください。最初の非コメント行として、次のような行が必要です。
local all postgres ident
PostgreSQLの新しいバージョンの場合、ident
は実際にはpeer
になります。それも大丈夫です。
psql
シェル内で、DBユーザーpostgres
にパスワードを指定できます。
ALTER USER postgres PASSWORD 'newPassword';
次のように入力するとpsql
シェルを終了できます。 CtrlD またはコマンド\q
を使って。
これでpgAdminにDBスーパーユーザ用の有効なパスワードを与えることができるはずですし、それも幸せでしょう。 :-)
スタッフの反応は正しいですが、さらに自動化したい場合は、次のようにします。
$ Sudo -u postgres psql -c "ALTER USER postgres PASSWORD 'postgres';"
完了! User = postgresとpassword = postgresを保存しました。
User postgres ubuntuのパスワードがない場合は、次のようにします。
$ Sudo passwd postgres
これはイライラするものでした、上の答えのほとんどは正しいですが、彼らは データベースサービスを再起動する必要があることを述べていません pg_hba.confファイルの変更が有効になる前に/。
そのため、上記のように変更を加えたとします。
local all postgres ident
それから restart rootとして(サービスサービスpostgresql-9.2 restartのようなもの)、今度はユーザpostgresとしてdbにアクセスできるはずです。
$psql
psql (9.2.4)
Type "help" for help.
postgres=#
これが新しいpostgresユーザのための情報を追加することを願っています
Pg_hba.confファイルを編集します。 Sudo emacs /etc/postgresql/9.3/main/pg_hba.conf
と一緒に
すべての認証方法をtrust
に変更します。 "postgres"ユーザーのUnixパスワードを変更してください。サーバーを再起動します。 psql -h localhost -U postgres
でログインし、設定したばかりのUnixパスワードを使用してください。うまく動く場合は、pg_hba.confファイルをデフォルト値に再設定できます。
あなたがpostgresユーザとしてpostgresシェルにログインしようとしているなら、あなたは以下のコマンドを使うことができます。
postgresユーザーに切り替える
# su - postgres
psqlにログイン
# psql
それが役立つことを願っています
-Wパラメーターを使用せず、パスワードを空白のままにしてみてください。ユーザーがパスワードなしで作成されることがあります。
それでもうまくいかない場合は、パスワードを再設定してください。それにはいくつかの方法がありますが、これは多くのシステムで機能します。
$ su root
$ su postgres
$ psql -h localhost
> ALTER USER postgres with password 'YourNewPassword';
初めてそれを使っていて、パスワードが何であるかについての情報を持っていない人のために彼らは以下のステップに従うことができます(あなたがubuntuにいると仮定して)
/etc/postgresql/9.x/main
内のファイル pg_hba.conf を開きます。
Sudo vi pg_hba.conf
2.下の行を編集
local all postgres peer
に
local all postgres trust
サーバーを再起動します
Sudo service postgresql restart
経験則として、 POSTGRESユーザーのパスワードを絶対に設定しないでください 。
PgAdminからスーパーユーザーアクセスが必要な場合は、別のスーパーユーザーを作成してください。このようにして、そのスーパーユーザーの資格情報が危険にさらされた場合、いつでも実際のデータベースHostにSSH接続して、手動でスーパーユーザーを削除できます。
Sudo -u postgres -c "DROP ROLE superuser;"
私は同じような問題を抱えていました。 Ubuntuは私にスーパーユーザーのパスワードでコンソールにログインしたままにされました。 psql行コマンドで-h localhostに接続したときを除く。
私はまた "localhost:8080/MyJSPSiteLogIn"を見ました - 示しました:致命的:ユーザー "user"による認証エラー.
pg_hba.confは問題ありませんでした。
私は2つのバージョンのpostgresが同じサービスで動いていることに気づきました。
解決済み - inutilバージョンをアンインストールする。
私はちょうどあなたがあなたのパスワードが期限切れであるかどうかもあなたがまたチェックするべきであると付け加えたかったです。
Postgresパスワード認証が失敗する を参照。
これが私がログインしようとしたいくつかの組み合わせです。
# login via user foo
psql -Ufoo -h localhost
Sudo -u postgres psql postgres
# user foo login to postgres db
psql -Ufoo -h localhost -d postgres