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上だけで行うようにしましょう。
停電などの障害がおこるとデータが消失する可能性があり非常にリスクの高い設定になるので
本番環境では行わない方が良さそうです。