Ubuntu 9.10にpostgres 8.4をインストールしたばかりで、スーパーユーザーを作成するように要求されたことはありません。デフォルトのスーパーユーザーとそのパスワードはありますか?そうでない場合、どのように新しいものを作成しますか?
[〜#〜]注意[〜#〜] "postgres"の "$ Sudo passwd postgres"によるUNIXパスワードの変更に関する回答は推奨されておらず、[〜 #〜]危険[〜#〜]!
これが理由です。デフォルトでは、UNIXアカウント「postgres」はロックされています。つまり、パスワードを使用してログインすることはできません。 「Sudo passwd postgres」を使用すると、アカウントはすぐにロック解除されます。さらに悪いことに、パスワードを「postgres」などの弱いものに設定すると、セキュリティ上の大きな危険にさらされます。たとえば、ユーザー名とパスワードの組み合わせ「postgres/postgres」を使用してUNIXシステムにログインしようとするボットが数多く存在します。
あなたがすべきことはChris Jamesの答えに従います:
Sudo -u postgres psql postgres
# \password postgres
Enter new password:
少し説明します。 PostgreSQLサーバーにログインするには、通常2つのデフォルトの方法があります。
「psql」コマンドをUNIXユーザーとして実行する(いわゆるIDENT/PEER認証)。例:Sudo -u postgres psql
。ご了承ください Sudo -u
はUNIXユーザーのロックを解除しません。
postgreSQL独自の管理されたユーザー名/パスワードを使用したTCP/IP接続による(いわゆるTCP認証)(つまり[〜#〜] not [〜#〜] UNIXパスワード)。
したがって、決してUNIXアカウント「postgres」のパスワードを設定する必要はありません。デフォルトではそのままにしておいてください。
もちろん、デフォルト設定とは異なる構成にすると、状況が変わる可能性があります。たとえば、PostgreSQLパスワードをUNIXパスワードと同期して、ローカルログインのみを許可することができます。それはこの質問の範囲を超えています。
コマンドラインに次のように入力します。
$ 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;
Windowsでは、以下を実行します(重要:Windows administratorアカウントを使用してください):
インストール後、<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
pg_hba.conf
の「trust」を「md5」に戻します。
PostgreSQLシェルにアクセスしようとしている場合は、次のように入力できます。
psql -U postgres my_database
どこ my_database
はデータベース名です。