web-dev-qa-db-ja.com

UbuntuでのPostgreSQLのパスワードのリセット

Ubuntuを使用しています。 Ruby on RailsのPostgresqlデータベースをインストールする数日前。データベースサーバーのスーパーユーザーを作成し、postgresqlスーパーユーザーのパスワードを忘れました。誰でもスーパーユーザーのパスワードをリセットする方法を教えてください。試したことの1つは、アンインストールしてから再度インストールしましたが、以前に作成されたスーパーユーザーが保持されていることです。

79

あなたがマシンの管理者であると仮定すると、Ubuntuは、任意のユーザーとしてコマンドを実行するSudoの権利をあなたに付与しました。
_pg_hba.confファイル(/etc/postgresql/9.1/mainディレクトリ内)の権限を制限しなかった場合も、最初のルールとして次の行を含める必要があります。

# Database administrative login by Unix domain socket  
local   all             postgres                                peer

(ファイルの場所について:9.1はpostgresのメジャーバージョンであり、mainは「クラスター」の名前です。postgresの新しいバージョンまたはデフォルト以外の名前を使用する場合は異なります。pg_lsclustersコマンドを使用して、バージョン/システムのこの情報を取得します)。

とにかく、pg_hba.confファイルにその行がない場合は、ファイルを編集して追加し、Sudo service postgresql reloadを使用してサービスをリロードします。

次に、このシェルコマンドを使用してpostgresスーパーユーザーとしてpsqlでログインできるようになります。

Sudo -u postgres psql

Psql内で、次のSQLコマンドを発行します。

ALTER USER postgres PASSWORD 'newpassword';

このコマンドでは、postgresはスーパーユーザーの名前です。パスワードを忘れたユーザーがriteshだった場合、コマンドは次のようになります。

ALTER USER ritesh PASSWORD 'newpassword';

参照: PostgreSQL 9.1.13ドキュメント、第19章クライアント認証

末尾に単一のSを付けてpostgresと入力する必要があることに注意してください

179
Daniel Vérité