いわなが まさひろ の メモ帳

2015-01-18 ( 久々にブログw)CentOS7にpostgresqlを導入し$PGDATAを変更した時の

CentOS7にpostgresqlを導入してみた。

データディレクトリー($PGDATA?)をデフォルトから変更するときに少しはまったのでメモです。

yum install postgresql-server でpostgresql 9.2 を導入。

postgres ユーザーで initdb を実施。

このとき -D オプションで任意のディレクトリー(/pgsql/data)を指定。

この後、

systemctl start postgresql.service

を実行すると、


postgresql-check-db-dir: "/var/lib/pgsql/data" is missing or empty.


が表示される。

/usr/lib/systemd/system/postgresql.service 内の "Environment=PGDATA=" のディレクトリーを initdb -D で指定したディレクトリーに変更し、systemctl daemon-reload して再度チェレンジ。

しかし、


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


と、相変わらず起動できず。上記ファイルのパーミッションも問題なし。

色々ググった結果、正しい手順は、

1) /usr/lib/systemd/system/postgresql.service 内の "Environment=PGDATA=" を変更

2) systemctl daemon-reload を実行

3) postgresql-setup initdb を実行

4) systemctl start postgresql.service

3) が抜けていたようです。

早く systemd に慣れる必要がありますね。。