2014-01-08 41 views
5

残念ながら、私はPostgreSQLのpostgresユーザからスーパーユーザ権限を削除しました。そして現在私はPostgreSQLのスーパーユーザはいません。そして私はスーパーユーザーになりたい。だから、どうすればいい?ポストグルーズをスーパーユーザーにしようとするたびに。私はこの問題に直面しています。エラー:スーパーユーザを変更するにはスーパーユーザである必要があります

Error : must be superuser to alter superusers. 

あなたは、データベースシステムを停止し、常に無条件にスーパーユーザーとして実行されますスタンドアロンバックエンドを開始する必要があるとしている事前のおかげで、

答えて

2

このバックエンドをスーパーユーザ権限を与えたいユーザALTERに使用できます。次に、スタンドアロンのバックエンドをシャットダウンし、データベースを正常に起動します。

シングルユーザーモードに入る前にデータベースサーバーを完全に停止することが重要です。 PostgreSQLのシングルユーザモードは、postmasterがある場合は起動を拒否しますが、PostgreSQLのプロセスがシステム上で実行されていないことを確認する必要があります。 Under (almost) no circumstances should you ever delete postmaster.pid - そのデータディレクトリにアクセスするPostgreSQLプロセスがまだ残っていると、データベースが破損する可能性がかなりあります。

スタンドアロンのバックエンドの起動方法は、OS /ディストリビューションのビットと、PostgreSQLのインストール方法によって異なります。あなたはこの情報を含んでいないので、私は実際にあなたを指すことができるのはthe manual for the postgres back-end executableです。

まずバックアップを作成してください。

In the single-user mode, the session user will be set to the user with ID 1, and implicit superuser powers are granted to this user. This user does not actually have to exist, so the single-user mode can be used to manually recover from certain kinds of accidental damage to the system catalogs.

はセクションシングルユーザーモードのオプションと、底部に向かって、使用を参照してください。 --singlepostgresバックエンドをデータベースファイルを所有するunixユーザーとして実行し、datadirへのパスを使用したいとします。一般的なLinuxのPostgreSQLの上では、このようなものかもしれませんインストール:

sudo systemctl stop postgresql-9.3.service 
sudo -u postgres /usr/pgsql-9.3/bin/postgres --single -D /var/lib/pgsql/9.3/data 

あなたDATADIRとpostgres実行可能な場所がかなり異なる可能性があります。上記は、PGDG PostgreSQLパッケージを実行しているFedoraシステムの場合、http://yum.postgresql.org/です。必要にスーパーユーザーとして

+0

ありがとうございます。私は人形モジュールを使ってデータベースを定義していましたが、postgresユーザーをデータベースの所有者に設定しても問題ないと思っていましたが、Postgresql :: Server :: Db [mydb]/Postgresql :: Server :: Role [postgres]/Postgresql_psql [ALTER ROLE "postgres" NOSUPERUSER]/command)コマンドが 'notrun'を 'ALTER ROLE'に変更しましたpostgres "NOSUPERUSER" – tobixen

7

はpsqlを入力するには

を(あなたがUbuntuマシン上のrootアクセス権を持っていると仮定します):

sudo -u postgres psql 

この中で提案されているようなしがある場合にはSO here

を投稿しますpostgresという名前のユーザーがシステムで最初に作成する必要があります。

sudo adduser newuser 

それ以外の場合は、パスワードの問題があるか、まったく作成されていないか(Ubuntu 14.04に関連しています)、hereまたはそれ以上のユーザアカウントを参照してください。here

+0

これは質問に答えません。 – lunr

関連する問題