環境
Virtualbox + vagrant
ホストOS: Windows7 64bit
ゲストOS: Linux version 3.10.0-327.18.2.el7.x86_64
CentOS Linux release 7.2.1511 (Core)
postgresqlのバージョン: psql (PostgreSQL) 9.2.15
CentOS7でpostgresqlをインストールしました。
下記のようにインストールとinitをおこない
sudo yum -y install postgresql-server postgresql-contrib postgresql-devel sudo postgresql-setup initdb
/var/lib/pgsql/data/pg_hba.confを編集しました。
その後、下記コマンドを実行したのですがエラーになってしまいます。
[vagrant@localhost]~/% sudo systemctl start postgresql Job for postgresql.service failed because the control process exited with error code. See "systemctl status postgresql.service" and "journalctl -xe" for details. [vagrant@localhost]~/% sudo systemctl status postgresql master ● postgresql.service - PostgreSQL database server Loaded: loaded (/usr/lib/systemd/system/postgresql.service; enabled; vendor preset: disabled) Active: failed (Result: exit-code) since Mon 2016-05-23 10:51:01 JST; 48s ago Process: 3054 ExecStart=/usr/bin/pg_ctl start -D ${PGDATA} -s -o -p ${PGPORT} -w -t 300 (code=exited, status=1/FAILURE) Process: 3048 ExecStartPre=/usr/bin/postgresql-check-db-dir ${PGDATA} (code=exited, status=0/SUCCESS) May 23 10:51:00 localhost.localdomain systemd[1]: Starting PostgreSQL database server... May 23 10:51:01 localhost.localdomain pg_ctl[3054]: pg_ctl: could not start server May 23 10:51:01 localhost.localdomain systemd[1]: postgresql.service: control process exited, code=exited status=1 May 23 10:51:01 localhost.localdomain systemd[1]: Failed to start PostgreSQL database server. May 23 10:51:01 localhost.localdomain systemd[1]: Unit postgresql.service entered failed state. May 23 10:51:01 localhost.localdomain systemd[1]: postgresql.service failed.
いろいろ試して、下記のコマンドで起動できることを確認しました。
[vagrant@localhost]~% sudo -u postgres /usr/bin/pg_ctl start -D ${PGDATA} could not change directory to "/home/vagrant" server starting
しかし、まだ2つ問題が残っています。
- 引き続きsystemctlからpostgresqlを起動出来ないため、
systemctl enable postgresql.service
しても自動起動しません。
2. systemctl start postgresql
としたときは/usr/bin/pg_ctl start -D ${PGDATA} -s -o -p ${PGPORT} -w -t 300
が実行されるようなのですが、PGPORTはpostgresユーザでprintenvしても設定されていませんでした。そのためsystemctl start postgresql
はpオプションの引数なしでエラーになってしまいます。
どちらの問題も私の知識で無理やり回避することはできますがスマートな方法が知りたいので、「普通こうやるよ」という方法をどなたか教えていただけないでしょうか。

回答4件
あなたの回答
tips
プレビュー