Postgresqlを開始しようとすると、エラーが発生します。
postgres
postgresは、サーバー構成ファイルの場所を知りません。
-config-fileまたは-D呼び出しオプションを指定するか、PGDATA環境変数を設定する必要があります。
だから、私は私の設定ファイルを設定しようとします:
postgres -D /usr/local/var/postgres
そして、次のエラーが表示されます。
postgresはサーバー構成ファイル「/usr/local/var/postgres/postgresql.conf」にアクセスできません:許可が拒否されました
うーん、いいよ。次に、管理者と同じアクションを実行しようとします。
Sudo postgres -D /usr/local/var/postgres
そして、次のエラーが表示されます。
PostgreSQLサーバーの「ルート」実行は許可されていません。
システムセキュリティの侵害を防ぐために、サーバーは非特権ユーザーIDで起動する必要があります。サーバーを適切に起動する方法の詳細については、ドキュメントを参照してください。
私はそのエラーメッセージをグーグルで探しましたが、解決策が見つかりません。
誰でもこれに関する洞察を提供できますか?
あなたのコマンドはあなたが思っていることをしません。何かをsystem userpostgres
として実行するには:
Sudo -u postgres command
command(別名postgres
!)を実行するには:
Sudo -u postgres postgres -D /usr/local/var/postgres
あなたのコマンドは逆のことをします:
Sudo postgres -D /usr/local/var/postgres
プログラムpostgres
をスーパーユーザーroot
(-u
スイッチなしのSudo
)として実行し、Postgresはセキュリティ上の理由からスーパーユーザー特権での実行を許可しません。したがって、エラーメッセージ。
システムユーザーpostgres
としていくつかのコマンドを実行する場合は、次のコマンドでユーザーを変更します。
Sudo -u postgres -i
...およびexit
完了したら。
システムユーザーpostgres
として操作しているときにこのエラーメッセージが表示される場合、ファイルまたは含まれているディレクトリのいずれかのアクセス許可に問題があります。
postgresはサーバー構成ファイル「/usr/local/var/postgres/postgresql.conf」にアクセスできません:許可が拒否されました/usr/local/var/postgres/postgresql.conf
最後に:
pg_ctl
-または pg_ctlcluster
も検討してください。su
と Sudo
の違いを知ってください。公式のdockerイメージを使用してカスタムコマンドを実行しようとする場合は、次のコマンドを使用します。 docker-entrypoint.sh
は、ユーザーの切り替えと他の権限の処理を処理します。
docker-entrypoint.sh -c 'shared_buffers=256MB' -c 'max_connections=200'