« psi-probeでグラフが表示されない | Main | muninをソースからビルドする »

2012.05.16

PostgreSQL and SELinux

PostgreSQLでデフォルトのデータファイル保管ディレクトリ(/var/lib/pgsql/data)以外を使用していたり、デフォルトのポート番号(5432)以外を使用していたりする場合、PostgreSQLの自動起動に失敗してしまう場合があるようです。

pgstartup.log を確認してみると、

postmasterはサーバ設定ファイル"/somedirectory/data/postgresql.conf"にアクセスできません: 許可がありません

というメッセージが。

どうも、これまた、SELinuxの設定に起因するものでした。CentOS で PostgreSQL を使ってみよう!(3) の内容を参考に、設定変更。

semanageコマンドを使用して、対象となるディレクトリのタイプを postgresql_db_t に変更。

# semanage fcontext -a -t postgresql_db_t "/somedirectory/data(/.*)?"
# restorecon -R /somedirectory/data/

設定した内容は、/etc/selinux/targeted/contexts/files/file_contexts.localファイルに保管されています。

※ちなみに、semanageコマンドが見つからない場合は、policycoreutils-pythonパッケージをインストールすればOK。

また、5432以外のポート番号(例:5433)を使用している場合も、semanageコマンドで設定。

# semanage port -a -t postgresql_port_t -p tcp 5433

設定内容を確認する場合は、以下のようにコマンドを実行すればOK。
# semanage port -l

なかなか悩ましいですね・・・。
しかも、シェルから、

/etc/init.d/postgresql start
で手動で起動した場合は問題なく起動していたので、気付くのに遅れてしまいました。

#CentOS5の時は、OSセットアップ時にSELinuxを無効にしていましたからねぇ~。

|

« psi-probeでグラフが表示されない | Main | muninをソースからビルドする »

Linux」カテゴリの記事

Comments

Post a comment



(Not displayed with comment.)


Comments are moderated, and will not appear on this weblog until the author has approved them.



TrackBack

TrackBack URL for this entry:
http://app.cocolog-nifty.com/t/trackback/3959/54665031

Listed below are links to weblogs that reference PostgreSQL and SELinux:

« psi-probeでグラフが表示されない | Main | muninをソースからビルドする »