先日、AWSのEC2インスタンスにPostgreSQL9.6をインストールしたのだが、起動時にエラーが発生した。
この問題の解決方法についてまとめておく。
コンテンツ
PostgreSQLのインストール
まずは下記のコマンドでインストールを行っておく。
yum install postgresql96-server postgresql96-devel postgresql96-contrib
このまま「systemctl start」コマンドで起動させたところ、以下のエラーが発生した。
Process: 29800 ExecStartPre=/usr/pgsql-9.6/bin/postgresql96-check-db-dir ${PGDATA} (code=exited, status=1/FAILURE)
データベースの初期化
まずは下記コマンドで初期化を行う。
/usr/pgsql-9.6/bin/postgresql96-setup initdb
firewalldの設定
firewalldをインストールしている場合、以下の設定を行っておく。
firewall-cmd --add-service=postgresql --zone=public --permanent
firewall-cmd --reload
設定ファイルの更新
次に以下のとおり設定ファイルを更新しておこう。
vim /var/lib/pgsql/9.6/data/postgresql.conf
# - Connection Settings -
listen_addresses = '*' ←追記する(全てのIPに対し受信する)
vim /var/lib/pgsql/9.6/data/pg_hba.conf
# IPv4 local connections:
↓上のコメントアウトし以下のとおり受信許可アドレスを設定する
#host all all 127.0.0.1/32 ident
host all all 0.0.0.0/0 md5
サービス起動
ここまで準備ができたら再度サービスの起動を試してみる。
systemctl daemon-reload
systemctl enable postgresql-9.6.service
systemctl start postgresql-9.6
これで無事に起動することができるはずだ。