Ubuntu(WSL)でpostgreSQLに接続できず、起動もしない

一度起動したはずのpostgreSQLに接続できなくなりました

起こった事

UbuntuにRailsのテスト開発環境を作っていました。

postgreSQLをインストールし、rootユーザー起動を確認しました。

インストール時は起動するのにpostgresユーザーに切り替えてロールを作成したあと、作成したユーザーでログインしようとすると起動失敗し、起動できていたrootユーザーでpostgresでも起動しなくなりました。

環境

  • Ubuntu 18.04(Windows10 WSL)
  • postgreSQL 9.6

コンソール表示のエラーとログ

psql -l でのエラー

sudo service postgresql start しても起動できないので/var/log/postgresql/postgresql-9.6-main.log の中を見ると

一度エラーが出てしまうと、起動できていたrootユーザーでpostgresでも起動しなくなりました。

「.s.PGSQL.5432」が消えてしまって作成されなくなってしまうので「見つからない」と怒られます。

しかし、「.s.PGSQL.5432」で検索した解決法ではうまくいかなかったので、postgreSQLをきれいにアンインストールし、再インストールしました。そしてまた同じ現象が起こってしまいました。

何度かかこれを繰り返して、だいぶ時間を取られてしまいました。

今回うまくいった解決策

海外のサイトですが、/etc/postgresql/9.6/main/postgresql.confファイルのfsync = off設定でうまくいくという書き込みを発見でき、試してみるとうまくいきました。

https://askubuntu.com/questions/1121820/postgresql-not-starting

書き込みによるとWindows Linux Subsystemに問題があるようでした。今後は改善されるかもしれません。

ただし、fsync = offはローカルのWSL上だけで行うようにしましょう。
停電などの障害がおこるとデータが消失する可能性があり非常にリスクの高い設定になるので
本番環境では行わない方が良さそうです。

上へ