29

コマンドを使用して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"?
4

7 に答える 7

54

私はそれを使用して解決しました..

1)関連するディレクトリを入力します(> find server.keyを使用)

2)古いserver.keyリンクをバックアップします。

3)ssl-cert-snakeoil.keyをserver.keyにコピーします

4-5)所有者とグループをpostgresに変更します

6)権限が700または740であることを確認します(エラーメッセージで要求されたとおり)

私のUbuntu12.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

そして今、その働き!サポートに感謝します。

于 2012-08-28T05:09:51.363 に答える
9

サーバーキーをハードコピーして、そのままの場所に残してはどうでしょうか。

代わりに、次の方が簡単です。

PostgreSQLデータディレクトリ(プライベートcertificate.keyファイルへのリンクが存在する場所)の「server.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 *
于 2014-06-18T23:08:41.383 に答える
6

エラーメッセージが示すように、キーファイルの権限を修正しますserver.key。サーバーは、ファイルを所有する必要があるユーザー「postgres」として実行されます。試す

#cd <path/to/pgsql/data> 
#chown postgres server.key
#chmod 0640 server.key
于 2012-08-23T08:39:35.747 に答える
3

それは私に起こりました、そして私が誤ってpostgresユーザーを「ssl-cert」グループから削除し、それを元に戻したことがわかりました

gpasswd -postgres ssl-cert

于 2014-12-03T14:09:45.330 に答える
3

の権限をに設定/etc/ssl/privateroot:ssl-certます。この問題に関するコメントにより、私はこの解決策を試してみました。

:難しい答えでも受け入れられますが、私の問題は解決しませんでした。他の誰かを助けるために私はここで答えたかった

于 2014-12-06T22:45:15.957 に答える
2
sudo chown postgres /var/lib/postgresql/8.4/main/server.key

sudo chmod 0640 /var/lib/postgresql/8.4/main/server.key

postgresqlの後にタブを押してバージョンを確認します。

于 2014-02-08T19:53:39.270 に答える
0

これに従ってくださいhttps://www.postgresql.org/docs/9.6/ssl-tcp.html

「chmodog-rwxserver.key」を使用し、chownコマンドを使用してユーザーをpostgresユーザーに変更します。

于 2021-03-25T08:11:49.653 に答える