質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
CentOS

CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

PostgreSQL

PostgreSQLはオープンソースのオブジェクトリレーショナルデータベース管理システムです。 Oracle Databaseで使われるPL/SQLを参考に実装されたビルトイン言語で、Windows、 Mac、Linux、UNIX、MSなどいくつものプラットフォームに対応しています。

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

Q&A

解決済

3回答

13705閲覧

posgresqlの起動時のエラーが解決できません。教えていただきたいです。

merci_children

総合スコア44

CentOS

CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

PostgreSQL

PostgreSQLはオープンソースのオブジェクトリレーショナルデータベース管理システムです。 Oracle Databaseで使われるPL/SQLを参考に実装されたビルトイン言語で、Windows、 Mac、Linux、UNIX、MSなどいくつものプラットフォームに対応しています。

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

0グッド

3クリップ

投稿2019/01/13 11:11

Postgresqlの起動時にエラーが発生し、解決できません。
エラーの解決方法をご教授いただきたいです。

以下エラー内容です。

[root@localhost ~]# service postgresql start
Redirecting to /bin/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.
[root@localhost ~]# service postgresql status
Redirecting to /bin/systemctl status postgresql.service
● postgresql.service - PostgreSQL database server
Loaded: loaded (/usr/lib/systemd/system/postgresql.service; disabled; vendor preset: disabled)
Active: failed (Result: exit-code) since 日 2019-01-13 20:03:14 JST; 1min 11s ago
Process: 3712 ExecStart=/usr/bin/pg_ctl start -D ${PGDATA} -s -o -p ${PGPORT} -w -t 300 (code=exited, status=1/FAILURE)
Process: 3707 ExecStartPre=/usr/bin/postgresql-check-db-dir ${PGDATA} (code=exited, status=0/SUCCESS)

1月 13 20:03:13 localhost.localdomain pg_ctl[3712]: LOG: IPv6ソケットをバインドできませんでした: アドレスは…です
1月 13 20:03:13 localhost.localdomain pg_ctl[3712]: ヒント: すでに他にpostmasterがポート5432で稼動していま…ださい
1月 13 20:03:13 localhost.localdomain pg_ctl[3712]: LOG: IPv4ソケットをバインドできませんでした: アドレスは…です
1月 13 20:03:13 localhost.localdomain pg_ctl[3712]: ヒント: すでに他にpostmasterがポート5432で稼動していま…ださい
1月 13 20:03:13 localhost.localdomain pg_ctl[3712]: WARNING: "localhost"に関する監視用ソケットを作成できま…でした
1月 13 20:03:13 localhost.localdomain pg_ctl[3712]: FATAL: TCP/IPソケットを作成できませんでした
1月 13 20:03:14 localhost.localdomain systemd[1]: postgresql.service: control process exited, code=exited status=1
1月 13 20:03:14 localhost.localdomain systemd[1]: Failed to start PostgreSQL database server.
1月 13 20:03:14 localhost.localdomain systemd[1]: Unit postgresql.service entered failed state.
1月 13 20:03:14 localhost.localdomain systemd[1]: postgresql.service failed.
Hint: Some lines were ellipsized, use -l to show in full.

不足情報などあれば教えていただきたいです。
すいませんが、よろしくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

つservice postgresql restart

投稿2019/01/13 11:24

hichon

総合スコア5737

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

merci_children

2019/01/13 12:57

回答ありがとうございます。試してみましたが、同じエラーが発生します。 以下エラー内容です。 [root@localhost ~]# service postgresql restart Redirecting to /bin/systemctl restart 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. [root@localhost ~]# service postgresql status Redirecting to /bin/systemctl status postgresql.service ● postgresql.service - PostgreSQL database server Loaded: loaded (/usr/lib/systemd/system/postgresql.service; disabled; vendor preset: disabled) Active: failed (Result: exit-code) since 日 2019-01-13 21:55:49 JST; 1min 19s ago Process: 10239 ExecStart=/usr/bin/pg_ctl start -D ${PGDATA} -s -o -p ${PGPORT} -w -t 300 (code=exited, status=1/FAILURE) Process: 10233 ExecStartPre=/usr/bin/postgresql-check-db-dir ${PGDATA} (code=exited, status=0/SUCCESS) 1月 13 21:55:48 localhost.localdomain pg_ctl[10239]: LOG: IPv6ソケットをバインドできませんでした: アドレス…中です 1月 13 21:55:48 localhost.localdomain pg_ctl[10239]: ヒント: すでに他にpostmasterがポート5432で稼動していま…さい 1月 13 21:55:48 localhost.localdomain pg_ctl[10239]: LOG: IPv4ソケットをバインドできませんでした: アドレス…中です 1月 13 21:55:48 localhost.localdomain pg_ctl[10239]: ヒント: すでに他にpostmasterがポート5432で稼動していま…さい 1月 13 21:55:48 localhost.localdomain pg_ctl[10239]: WARNING: "localhost"に関する監視用ソケットを作成できま…した 1月 13 21:55:48 localhost.localdomain pg_ctl[10239]: FATAL: TCP/IPソケットを作成できませんでした 1月 13 21:55:49 localhost.localdomain systemd[1]: postgresql.service: control process exited, code=exited status=1 1月 13 21:55:49 localhost.localdomain systemd[1]: Failed to start PostgreSQL database server. 1月 13 21:55:49 localhost.localdomain systemd[1]: Unit postgresql.service entered failed state. 1月 13 21:55:49 localhost.localdomain systemd[1]: postgresql.service failed. Hint: Some lines were ellipsized, use -l to show in full.
guest

0

何らかの原因でpostmasterプロセスが残ったままになっているのでは?
netstat -anで5432がlistenになっているか
ps -efでpostmasterがのこっているか

調べてはどうでしょうか?
残っていれば残ってしまったpostmasterをkillしたり、できれば再起動すればいいと思います。
できれば/var/log/messagesや、PostgreSQLのログを確認してなぜ残ってしまったかを確認したほうがいいとは思います。

投稿2019/01/13 22:29

melonbomber

総合スコア84

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ベストアンサー

とりあえずこのエラー内容を見ると、「5432 番ポートの利用権を取得できなかったので起動できなかった」ということがわかります。

 このような場合、最初に疑われるのは「既に起動されているためにエラーになっている」という可能性なので、これの対処は hichon さんの書かれたとおり、restart(stop → start)することです。

 しかし、再起動しようにも、そもそも stop させてもらえないことが restart のログからわかります。これは、「systemctl」的にはpostgresqlは起動していないことになっているということを意味します。

 では次にやるべきは何かというと、postgresql のログにある起動失敗原因の追求です。つまり、port5432 が利用できない理由を調査します。

 具体的には、「ss -antu」(netstat の後継コマンド。a:すべての接続を表示 n:名前解決しない、t:TCP について表示、u:UDPについて表示)を実行します。

 これで 5432 番 port が LISTEN されているようなら、「lsof -i:5432」(5432番ポートを LISTEN しているプログラムを表示)で、LISTEN しているプログラムを特定し、「ps -efH」、もしくは「ps auxf」の結果から lsof での結果のプロセスの ID を探して「kill -SIGHUP (プロセス ID)」で終了指示してみて終了させられるなら終了させ、それでも駄目なら「kill -SIGKILL (プロセス ID)」で強制終了します。

 また、該当するプロセスが存在しないが利用中な状態になってしまっているような場合には、サーバを再起動できるなら再起動。できないなら、副作用がないわけではないと思いますが「systemctl restart network」等でネットワークをリスタートしてしまえば回復します(割当ポート開放の正式な手順は他にあるのかもしれませんが知りません)。

 なお、5432 が「LISTEN」ではないのにポートの利用権を得られないのだとすれば、SecureLinux 回りの権限取得設定がうまく行っていない可能性がありますが、こっちの対処はあまり詳しくないのでパスさせていただきます。

投稿2019/01/17 01:18

himazin.blm

総合スコア581

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問