ひじりんのひつまむしブログ

現役システムエンジニアのゲームやら映画やら技術やら・・

CentOSのPostgreSQLが起動できない解消法

 

インストール確認

CentOS 8 でPostgreSQLが入っているものの起動できないので

その対象法を、書き留めておく

 

まずサービスの確認

# systemctl list-unit-files -t service

postgresql.service disabled
postgresql@.service disabled

サービスはある。起動してみる

# systemctl start postgresql.service

Job for postgresql.service failed because the control process exited with error code.
See "systemctl status postgresql.service" and "journalctl -xe" for details.

ステータスの確認

# systemctl status postgresql.service

2月 20 17:30:25 www.scheduller.net systemd[1]: postgresql.service: Control process exited, code=exited status=1
2月 20 17:30:25 www.scheduller.net systemd[1]: postgresql.service: Failed with result 'exit-code'.
2月 20 17:30:25 www.scheduller.net systemd[1]: Failed to start PostgreSQL database server.

ちなみにパッケージ確認すると

# rpm -aq | grep postgres

postgresql-server-10.6-1.module_el8.0.0+15+f57f353b.x86_64
postgresql-10.6-1.module_el8.0.0+15+f57f353b.x86_64

インストールは出来ているみたい

環境についての確認

# systemctl show postgresql.service | grep Environment

Environment=PG_OOM_ADJUST_FILE=/proc/self/oom_score_adj PG_OOM_ADJUST_VALUE=0 PGDATA=/var/lib/pgsql/data

 データの中身を確認

[root@www lib]# cd /var/lib/pgsql/data/
[root@www data]# ls
[root@www data]#

 データベースが初期化されていない・・・

そりゃ立ち上がらないはずだ・・

初期化を実施

# postgresql-setup --initdb

* Initializing database in '/var/lib/pgsql/data'
* Initialized, logs are in /var/lib/pgsql/initdb_postgresql.log

 起動

# systemctl start postgresql.service

 起動できた。ステータスは?

systemctl status postgresql.service
postgresql.service - PostgreSQL database server
Loaded: loaded (/usr/lib/systemd/system/postgresql.service; disabled; vendor>
Active: active (running) since Sat 2021-02-20 17:45:57 JST; 41s ago

まずは、終了

 

2022-05-30 追記

それでも、エラーとなるケースがある

# sudo -u postgres pg_ctl -D . start

で、確認すると

サーバの起動完了を待っています....2022-05-30 06:50:46.339 JST [262174] LOG:  IPv6アドレス"::1"のbindに失敗しました: 要求アドレスに割り当てられません

ipv6で失敗している

ipv6は除外するようにする

postgresql.conf

このファイルの

#listen_addresses = 'localhost'            # what IP address(es) to listen on;

listen_addresses = '0.0.0.0'            # what IP address(es) to listen on;

に変更

後は再起動で、OK

PVアクセスランキング にほんブログ村