web-dev-qa-db-ja.com

PostgreSQLサービスinitdbが機能しない

上記の here と同様の方法で、Fedora 16にPostgreSQL 9.1.2をインストールしてテストしました。つまり、私のインストールは正常に機能しています。

しかし、私がするとき:service postgresql initdb あるいは service postgresql-9.0 initdbエラーが表示されます:

Redirecting to /bin/systemctl  initdb postgresql.service
Unknown operation initdb

このため、pgAdmin3も起動できません。

何が欠けていますか?

7
c0da

Postgresがネイティブsystemdユニットを使用するように変換されているシステムでは、initdbのようなものにはpostgresql-setupを使用する必要があります。だからあなたが欲しいのは:

postgresql-setup initdb
6
TomH

Rootとして「su-postgres -c ...」コマンドを実行します

私はここで答えを見つけました: https://bugzilla.redhat.com/show_bug.cgi?id=771496

問題の説明:postgresqlサーバーrpmの初期インストール後、次のコマンドをrootとして実行するまで、起動できないサービスが残っています

su-postgres -c "initdb -D/var/lib/pgsql/data"

選択したコンポーネントのバージョンリリース番号(該当する場合):

[root @ oscar]#rpm -q postgresql-server postgresql-server-9.1.2-1.fc16.x86_64

再現性:常に

バックストーリー

いくつかの場所で、以前の指示(新しいコマンド:su-postgres -c "PGDATA =/var/lib/pgsql/data initdb")に従うのではなく、Fedora 16でこのコマンドを使用するように指示されましたが、その前に、コマンドを実行するとルートに切り替わると思いました。パスワードの入力を求め続けましたが、何も機能しませんでした。

どういうわけか、パスワードを空白のままにして、postgresユーザーとしてこれを行うことになっている場合に備えて、自分自身(sudoのように)のroot passwd、「postgres」、および「pgsql」を試しました。 rootにsuしてから、最初の 'su-'を使用せずにコマンドを実行しようとしましたが( "postgres -c ..."で始まります)、エラーが発生して次のように伝えられました。

「システムセキュリティの侵害を防ぐために、サーバーは非特権ユーザーIDで起動する必要があります。サーバーを正しく起動する方法の詳細については、ドキュメントを参照してください。」

最後に、完全なコマンド「su-postgres -c ...」をrootとして実行してみましたが、「su」を引き続き使用したところ、うまくいきました。これでサービスが開始されます。 Redhatバグ追跡に感謝!

概要

rootにsuし、次のように入力します。

su-postgres -c "PGDATA =/var/lib/pgsql/data initdb"

3
Dannid

次のコマンドを使用してpostgresqlサービスを開始する必要があります。

service postgresql start

initdbツールは、データベースサーバーのデータディレクトリを初期化する必要がある場合にのみ使用してください。これは、yum onのようなパッケージマネージャーを使用してpostgresqlサーバーをインストールするときに自動的に行われるはずです。 centosまたはapt-get on Ubuntu。

あなたが提供したリンクで示されているようにそれを使用することができます:

initdb -D /usr/local/pgsql/data
2
Khaled

これは少し遅れて返答しますが、誰かに役立つかもしれません... Fedora 18では、postgresql 9.2で、シェルのPATHに/usr/pgsql-9.2/binを追加する必要があり、そこから私は走らなければなりませんでした:

postgresql92-setup initdb

/var/lib/pgsql/9.2/dataにある構成ファイルとそのすべてを取得するために。それが他の誰かに役立つことを願っています!

0
Dmitri DB