PostgreSQL のデフォルト ユーザーのパスワードを忘れたか、または (インストール中に) 間違って入力しました。実行できないようで、次のエラーが表示されます。
psql: FATAL: password authentication failed for user "hisham"
hisham-agil: hisham$ psql
パスワードをリセットする方法はありますか? または、スーパーユーザー権限を持つ新しいユーザーを作成するにはどうすればいいですか?
私はPostgreSQLを初めて使い、初めてインストールしました。Ruby on Railsで使用しようとしており、Mac OS X v10.7(ライオン)。
ベストアンサー1
pg_hba.confファイルを見つけます。このファイルは、たとえば/etc/postgresql-9.1/pg_hba.confにある場合があります。
cd /etc/postgresql-9.1/
バックアップする
cp pg_hba.conf pg_hba.conf-backup
次の行を配置します (最初のコメントされていない行として、または唯一の行として)。
レプリケーション セクションを除く以下のすべての発生 (ローカルおよびホスト) については、ない場合は次のように変更する必要があります。MD5 またはピア認証は存在してはなりません。
ローカル すべて すべて 信頼
PostgreSQL サーバーを再起動します (例: Linux の場合)
sudo /etc/init.d/postgresql restart
サービス (デーモン) がログ ファイルにレポートを開始しない場合:
このビルドではローカル接続はサポートされていません
あなたは変わるべきだ
local all all trust
に
host all all 127.0.0.1/32 trust
これで、任意のユーザーとして接続できます。スーパーユーザーpostgresとして接続します(スーパーユーザーの名前はインストールによって異なる場合があります。一部のシステムでは、たとえばpgsqlと呼ばれます) 。
psql -U postgres
または
psql -h 127.0.0.1 -U postgres
(最初のコマンドでは必ずしもローカルホストに接続されるわけではないことに注意してください)
パスワードをリセットします(postgresユーザーをリセットするため、 my_user_name をpostgresに置き換えます)
ALTER USER my_user_name with password 'my_secure_password';
古いpg_hba.confファイルを復元してください。そのままにしておくのは非常に危険です。
cp pg_hba.conf-backup pg_hba.conf
安全なpg_hba.confファイルで実行するために、サーバーを再起動します。
sudo /etc/init.d/postgresql restart
pg_hba ファイルに関する詳細情報:19.1. pg_hba.conf ファイル(公式文書)