いつでも、次のコマンドを使用してPostgreSQLを起動します。
$ Sudo /etc/init.d/postgresql start
Pgが起動しません。報告されるエラーは次のとおりです。
* Starting PostgreSQL 8.4 database server
* The PostgreSQL server failed to start. Please check the log output:
2010-01-21 22:10:00 PST FATAL: private key file "server.key" has group or world access
2010-01-21 22:10:00 PST DETAIL: File must be owned by the database user or root, must have no write permission for "group", and must have no permissions for "other".
...そしてpsql
ユーザーとしてpostgres
にアクセスしようとすると:
$ Sudo su postgres
$ psql
それは私にエラーを与えます:
could not connect to server: No such file or directory
Is the server running locally and accepting
connections on Unix domain socket "/var/run/postgresql/.s.PGSQL.5432"?
私はそれを使ってそれを解決しました...
1)関連するディレクトリを入力します(use> Locate server.key)
2)古いserver.keyリンクをバックアップします。
3)ssl-cert-snakeoil.keyをserver.keyにコピーします
4-5)所有者とグループをpostgresに変更します
6)権限が700または740であることを確認します(エラーメッセージで要求されているとおり)
私のUbuntu 12.04とpostgresql-8.3のレシピ:
Sudo cd /var/lib/postgresql/8.3/main/
Sudo mv server.key server.key-0
Sudo cp /etc/ssl/private/ssl-cert-snakeoil.key server.key
Sudo chown postgres server.key
Sudo chgrp postgres server.key
Sudo chmod 740 server.key
Sudo /etc/init.d/postgres-8.3 start
そして今、その働き!サポートありがとうございます。
サーバーキーをハードコピーしないで、どこにでも好きなように残しておくとどうでしょう。
代わりに、次のことを単純化します。
"server.key"リンクのアクセス許可をPostgreSQLデータディレクトリ(プライベートなcertificate.keyファイルへのリンクが存在する場所)で変更します。
# cd /var/lib/postgresql/9.1/main/
に
# chown -R postgres:postgres server.key`
そして、元の証明書が
# /etc/ssl/private/ssl-cert-snakeoil.key
それらを設定することにより、それらのプロパティを持っています
# chmod 640 ssl-cert-snakeoil.key
# chown root:ssl-cert ssl-cert-snakeoil.key
このソリューションはDebianでテストされています。 CentOSは、拡張されたユーザー権利管理を備えたSELinuxを使用できることを覚えておいてください。
# ls -laZ *
エラーメッセージが示すように、キーファイルの権限を修正しますserver.key
。サーバーは、ファイルを所有する必要があるユーザー「postgres」として実行されます。試す
#cd <path/to/pgsql/data>
#chown postgres server.key
#chmod 0640 server.key
それは私に起こり、私が誤ってpostgresユーザーを「ssl-cert」グループから削除したことがわかりました。
gpasswd -a postgres ssl-cert
/etc/ssl/private
の権限をroot:ssl-cert
に設定します。 this issue についてのコメントにより、このソリューションを試してみることができました。
[〜#〜]ノート[〜#〜]:偶数タフな答えは受け入れられました、それは私の問題を解決しませんでした。他の誰かを助けるために私はここに答えたかった。
Sudo chown postgres /var/lib/postgresql/8.4/main/server.key
Sudo chmod 0640 /var/lib/postgresql/8.4/main/server.key
Postgresqlの後にタブを押して、バージョンを確認します。