前提・実現したいこと
Railsに使うDBの設定をしていたら、突然起動できなくなり、sudo service postgresql statusとしたら、
11/main (port 5432): downとなった。スーパーユーザーにする過程でミスったんだと思いますが、解決法が分かりません…
よろしくお願いします。
発生している問題・エラーメッセージ
/var/run/postgresql$ sudo service postgresql start [sudo] my_linux_login_name のパスワード: * Starting PostgreSQL 11 database server * Error: /usr/lib/postgresql/11/bin/pg_ctl /usr/lib/postgresql/11/bin/pg_ctl start -D /var/lib/postgresql/11/main -l /var/log/postgresql/postgresql-11-main.log -s -o -c config_file="/etc/postgresql/11/main/postgresql.conf" exited with status 1: 2019-02-25 23:17:50.203 JST [133] LOG: IPv4アドレス"127.0.0.1"、ポート5432で待ち受けています 2019-02-25 23:17:50.224 JST [133] LOG: Unixソケット"/var/run/postgresql/.s.PGSQL.5432"で待ち受けています 2019-02-25 23:17:50.331 JST [134] LOG: データベースシステムはシャットダウン中に中断されました; 2019-02-25 22:38:58 JST まで動作していたことは確認できます 2019-02-25 23:17:50.331 JST [134] PANIC: ダーティーデータを書き出しできませんでした: 関数は実装されてい ません 2019-02-25 23:17:50.332 JST [133] LOG: 起動プロセス (PID 134)はシグナル6で終了しました: Aborted 2019-02-25 23:17:50.332 JST [133] LOG: 起動プロセスの失敗のため起動を中断しています 2019-02-25 23:17:50.348 JST [133] LOG: データベースシステムはシャットダウンしました pg_ctl: サーバを起動できませんでした。 ログ出力を確認してください。
該当のログ
2019-02-25 22:29:04.413 JST [28811] LOG: IPv4アドレス"127.0.0.1"、ポート5432で待ち受けています 2019-02-25 22:29:04.432 JST [28811] LOG: Unixソケット"/var/run/postgresql/.s.PGSQL.5432"で待ち受けてい す 2019-02-25 22:29:04.553 JST [28812] LOG: データベースシステムは 2019-02-25 22:27:03 JST にシャットダウ しました 2019-02-25 22:29:04.682 JST [28811] LOG: データベースシステムの接続受け付け準備が整いました。 2019-02-25 22:29:05.277 JST [28819] [不明]@[不明] LOG: 開始パケットが不完全です 2019-02-25 22:30:51.512 JST [28847] my_linux_login_name@postgres FATAL: ロール"my_linux_login_name"は存在しません 2019-02-25 22:31:37.242 JST [28857] my_linux_login_name@ubuntu0876 FATAL: ロール"my_linux_login_name"は存在しません 2019-02-25 22:31:58.416 JST [28866] postgres@postgres LOG: 与えられたユーザ名 (postgres) と認証されたユ> ーザ名 (my_linux_login_name) が一致しません 2019-02-25 22:31:58.417 JST [28866] postgres@postgres FATAL: ユーザ "postgres" で対向(peer)認証に失敗し> ました 2019-02-25 22:31:58.417 JST [28866] postgres@postgres 詳細: 接続はpg_hba.confの行85に一致しました: "loca l all postgres peer" 2019-02-25 22:35:04.601 JST [28882] my_linux_login_name@postgres FATAL: ロール"my_linux_login_name"は存在しません 2019-02-25 22:37:03.409 JST [28925] postgres@postgres ERROR: ロール"{my_linux_login_name}"はすでに存在します 2019-02-25 22:37:03.409 JST [28925] postgres@postgres 文: CREATE ROLE "{my_linux_login_name}" SUPERUSER CREATEDB CREATEROLE INHERIT LOGIN; 2019-02-25 22:38:04.049 JST [28972] my_linux_login_name@postgres FATAL: ロール"my_linux_login_name"は存在しません 2019-02-25 22:38:58.151 JST [28811] LOG: 高速シャットダウン要求を受け取りました 2019-02-25 22:38:58.158 JST [28811] LOG: 活動中の全トランザクションをアボートしています 2019-02-25 22:38:58.179 JST [28811] LOG: バックグラウンドワーカ"logical replication launcher" (PID 28818 )は終了コード1で終了しました 2019-02-25 22:38:58.180 JST [28813] LOG: シャットダウンしています 2019-02-25 22:38:58.199 JST [28813] PANIC: ダーティーデータを書き出しできませんでした: 関数は実装されて> いません 2019-02-25 22:38:58.200 JST [28811] LOG: チェックポイント処理プロセス (PID 28813)はシグナル6で終了しま た: Aborted 2019-02-25 22:38:58.200 JST [28811] LOG: 他の活動中のサーバプロセスを終了しています 2019-02-25 22:38:58.243 JST [28811] LOG: データベースシステムは異常にシャットダウンしました 2019-02-25 22:38:58.261 JST [28811] LOG: データベースシステムはシャットダウンしました 2019-02-25 22:40:13.396 JST [29058] LOG: IPv4アドレス"127.0.0.1"、ポート5432で待ち受けています 2019-02-25 22:40:13.415 JST [29058] LOG: Unixソケット"/var/run/postgresql/.s.PGSQL.5432"で待ち受けていま す 2019-02-25 22:40:13.511 JST [29059] LOG: データベースシステムはシャットダウン中に中断されました; 2019-02 -25 22:38:58 JST まで動作していたことは確認できます 2019-02-25 22:40:13.512 JST [29059] PANIC: ダーティーデータを書き出しできませんでした: 関数は実装されて> いません 2019-02-25 22:40:13.513 JST [29058] LOG: 起動プロセス (PID 29059)はシグナル6で終了しました: Aborted 2019-02-25 22:40:13.513 JST [29058] LOG: 起動プロセスの失敗のため起動を中断しています 2019-02-25 22:40:13.537 JST [29058] LOG: データベースシステムはシャットダウンしました pg_ctl: サーバを起動できませんでした。 ログ出力を確認してください。 2019-02-25 22:41:49.440 JST [29093] LOG: IPv4アドレス"127.0.0.1"、ポート5432で待ち受けています 2019-02-25 22:41:49.459 JST [29093] LOG: Unixソケット"/var/run/postgresql/.s.PGSQL.5432"で待ち受けてい す 2019-02-25 22:41:49.573 JST [29094] LOG: データベースシステムはシャットダウン中に中断されました; 2019-02 -25 22:38:58 JST まで動作していたことは確認できます 2019-02-25 22:41:49.573 JST [29094] PANIC: ダーティーデータを書き出しできませんでした: 関数は実装されて> いません 2019-02-25 22:41:49.574 JST [29093] LOG: 起動プロセス (PID 29094)はシグナル6で終了しました: Aborted 2019-02-25 22:41:49.574 JST [29093] LOG: 起動プロセスの失敗のため起動を中断しています 2019-02-25 22:41:49.589 JST [29093] LOG: データベースシステムはシャットダウンしました
試したこと
ここに問題に対して試したことを記載してください。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
バックアップは取っていますか?
すみません、ド素人なので何のバックアップなのかいまいちわかっていないんですが、多分とってないと思います。ただPostgreSQLのことであれば、インストールしたばかりなので再インストールすることに特別抵抗はありません。
以下のコマンドをしてみたところ、こんな感じです。/var/run/postgresql/に.s.PGSQL.5432は見当たりませんでした。
``` psql -l
psql: サーバに接続できませんでした: そのようなファイルやディレクトリはありません
ローカルにサーバが稼動していますか?
Unixドメインソケット"/var/run/postgresql/.s.PGSQL.5432"で通信を受け付けていますか?```
postgresのインストール先のOSは何ですか?
アンインストール&インストールする方が手っ取り早そうですね。
WSLを使っているので、Ubuntu、リポジトリはAPTです。
シンプルにsudo apt remove postgresqlで大丈夫ですか?
上記のものと、sudo apt remove --purge postgresql を試し、どちらも直後にsudo apt install postgresqlしましたが、状況変わらずでした。
アンインストールした後でもpsqlコマンドが打てるのがなぜかわからないです
psqlはpostgres本体では無いので、アンインストールの手順に含まれていなければ残りますよ。
どういう手順でやれば解決できますかね…?
wslの環境では利用したことがないので、ご期待に応えることはできません。
自分なら、WSLの環境再構築覚悟で、postgresをもう一度インストールするしてみるとか。
それでリカバリされる可能性もありますし。
上手く行かないときは、別フォルダにインストール。
それでもだめならフォルダ削除して再度インストールでしょうか。
同じ状況の事例がネットでも見つけられないので、どうしても試行錯誤になっちゃいますね。
WSLですが、ふつうのUbuntuとそう変わらないと思うんですが、postgresインストールしてもダメだったんですよね、なぜか…
何はともあれ、ありがとうございました
回答2件
あなたの回答
tips
プレビュー