回答:
注意「$ sudo passwd postgres」を介して「postgres」のUNIXパスワードを変更することに対する回答は好ましくなく、危険ですらあります。
これが理由です。デフォルトでは、UNIXアカウント「postgres」はロックされています。つまり、パスワードを使用してログインすることはできません。「sudo passwd postgres」を使用すると、アカウントはすぐにロック解除されます。さらに悪いことに、「postgres」のような弱いパスワードを設定すると、大きなセキュリティ上の危険にさらされます。たとえば、ユーザー名/パスワードのコンボ「postgres / postgres」を使用してUNIXシステムにログインしようとするボットが多数あります。
あなたがすべきことは、クリス・ジェームズの答えに従うことです:
sudo -u postgres psql postgres
# \password postgres
Enter new password:
少し説明します。通常、PostgreSQLサーバーにログインするには、2つのデフォルトの方法があります。
UNIXユーザーとして「psql」コマンドを実行する(いわゆるIDENT / PEER認証)sudo -u postgres psql
。例: 。sudo -u
UNIXユーザーのロックは解除されないことに注意してください。
PostgreSQL独自の管理されたユーザー名/パスワード(いわゆるTCP認証)を使用したTCP / IP接続(UNIXパスワードではない)。
したがって、UNIXアカウント「postgres」にパスワードを設定することは決してありません。デフォルトではロックされたままにします。
もちろん、デフォルトの設定とは異なる設定をすると、状況は変わる可能性があります。たとえば、PostgreSQLパスワードをUNIXパスワードと同期し、ローカルログインのみを許可できます。それはこの質問の範囲外です。
/etc/shadow
パスワードは@lzapに保存されます。
コマンドラインで入力します。
$ sudo -u postgres psql postgres
postgres=# \password postgres
わかるでしょ:
Enter new password:
Enter it again:
次のpostgres
ように、ユーザーを介してpostgresを操作します。
# su - postgres
$ createdb mydb
$ psql -s mydb
# create user someuser password 'somepassword';
# GRANT ALL PRIVILEGES ON DATABASE mydb TO someuser;
su
パスワードを入力せずに、postgresユーザーのルートになる必要があります。ほとんどのシステムでは、Postgres Unixアカウントはロックされています(パスワードは機能しません)。つまり、そのアカウントに対してroot のみが許可su
されます。
sudo
代わりに使用しますsu
。
sudo su - postgres
:\
sudo -u postgres
。
Windowsでは、以下を実行します(重要:Windows 管理者アカウントを使用します):
インストール後、を開き<PostgreSQL PATH>\data\pg_hba.conf
ます。
これらの2行を変更し、「md5」を「trust」に変更します。
host all all 127.0.0.1/32 md5
host all all ::1/128 md5
PostgreSQLサービスを再起動します(必要ない場合があります)。
(オプション)コマンドプロンプトを開き、コードページを1252に変更します。
cmd.exe /c chcp 1252
PostgreSQLにログインします。非パスワードが必要になります(大文字の-Uパラメーターに注意してください):
psql -U postgres
(オプション、セキュリティ上の理由で推奨)postgres
ユーザーのパスワードを変更します。
\password postgres
そして、「trust」を「md5」に戻しpg_hba.conf
ます。