- - PR -
SELinux有効時、PostgreSQLでinitdbに失敗してしまいます
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2006-12-01 19:30
keiと申します。
Redhat Enterprize ES4にPostgreSQL8.1.3をインストールし、 initdbを行ったところ、エラーを示すメッセージが出て、DBが起動 出来ませんでした。対処の方法をネットで調べてみたのですが、 分かりませんでした。 SELinuxは有効になっています。 インストールの手順は、次のとおりです。 @Rootでログインし、 PostgreSQL用のグループとユーザーアカウントを作成 # groupadd postgres # useradd postgres -g postgres -d /home/postgres # passwd postgres APostgreSQLの実行ファイルを置くディレクトリを作成 # mkdir /usr/local/pgsql # chown postgres:postgres /usr/local/pgsql BダウンロードしたPostgreSQLのソースファイルを/usr/local/srcディレクトリに展開 # cd /usr/local/src # tar xfz postgresql-8.1.3.tar.gz C展開されたソースのオーナーをpostgresに変更し、suコマンドでpostgresに # chown -R postgres:postgres postgresql-8.1.3 # su - postgres D展開したPostgreSQLのディレクトリに移動 $ cd /usr/local/src/postgresql-8.1.3 E環境に合わせた設定を行う為、configureスクリプトを使う $ ./configure --enable-multibyte=EUC_JP --enable-syslog Fソースをコンパイルし、インストール $ make clean $ make all $ make install Gpostgresユーザの環境変数を設定 ホームディレクトリで.bash_profileを開き、以下を追加 export PATH="$PATH":/usr/local/pgsql/bin export POSTGRES_HOME=/usr/local/pgsql export PGLIB=$POSTGRES_HOME/lib export PGDATA=$POSTGRES_HOME/data export MANPATH="$MANPATH":$POSTGRES_HOME/man export LD_LIBRARY_PATH="$LD_LIBRARY_PATH":"$PGLIB" Hsourceコマンドで、.bash_profileを再読み込み $ source .bash_profile Iデータベースを初期化 $ initdb initdb実行時のエラーメッセージ -------------------------------------------------------- [postgres@sstsv14 ~]$ initdb The files belonging to this database system will be owned by user "postgres". This user must also own the server process. The database cluster will be initialized with locale ja_JP.UTF-8. creating directory /usr/local/pgsql/data... ok creating directory /usr/local/pgsql/data/base... ok creating directory /usr/local/pgsql/data/global... ok creating directory /usr/local/pgsql/data/pg_xlog... ok creating directory /usr/local/pgsql/data/pg_clog... ok selecting default max_connections... 10 selecting default shared_buffers... 50 creating configuration files... ok creating template1 database in /usr/local/pgsql/data/base/1... initdb: failed initdb: removing data directory "/usr/local/pgsql/data" -------------------------------------------------------- /usr/sbin/setenforce 0 で、SELinuxを無効にしてしまうと、エラーが 解消されるのですが、それではセキュリティの意味がなくなるので、 やりたくはないという状況です。 SELinuxを有効にしたまま、initdbを成功させる方法を教えてもらえないでしょうか。 よろしくお願いいたします。 [ メッセージ編集済み 編集者: kei 編集日時 2006-12-01 19:30 ] |
|
投稿日時: 2006-12-01 20:58
こんばんは。
SELinux は苦手なので、外していたらスミマセン。 CentOS の /etc/selinux 配下を眺めてみたところ、 ./targeted/contexts/files/file_contexts:/var/lib/pgsql/data(/.*)? system_u:object_r:postgresql_db_t こんな記述があったので、システムデフォルトの Path 以外に Database を作成する場合、 ここら辺を書き換える必要があるか、PostgreSQL 側を合わせるか、する必要がある気がします。 |
1