解決しました...部分的に。
どうやら、OS Xの最新バージョン(YosemiteやEl Capitanなど)をインストールすると、/usr/local/var/postgres
内のいくつかのディレクトリが削除されます 。
これを修正するには、不足しているディレクトリを再作成するだけです。
mkdir -p /usr/local/var/postgres/pg_commit_ts
mkdir -p /usr/local/var/postgres/pg_dynshmem
mkdir -p /usr/local/var/postgres/pg_logical/mappings
mkdir -p /usr/local/var/postgres/pg_logical/snapshots
mkdir -p /usr/local/var/postgres/pg_replslot
mkdir -p /usr/local/var/postgres/pg_serial
mkdir -p /usr/local/var/postgres/pg_snapshots
mkdir -p /usr/local/var/postgres/pg_stat
mkdir -p /usr/local/var/postgres/pg_stat_tmp
mkdir -p /usr/local/var/postgres/pg_tblspc
mkdir -p /usr/local/var/postgres/pg_twophase
または、より簡潔に(Nateに感謝 ):
mkdir -p /usr/local/var/postgres/{{pg_commit_ts,pg_dynshmem,pg_replslot,pg_serial,pg_snapshots,pg_stat,pg_stat_tmp,pg_tblspc,pg_twophase},pg_logical/{mappings,snapshots}}
pg_ctl start -D /usr/local/var/postgres
を再実行します これで、サーバーを正常に起動し、少なくとも私にとっては、データを失うことなく起動します。
更新
私のシステムでは、Postgresが実行されているときでも、これらのディレクトリの一部は空です。たぶん、いくつかの「クリーニング」操作の一部として、Yosemiteは空のディレクトリを削除しますか?いずれにせよ、私は先に進み、将来の削除を防ぐために各ディレクトリに「.keep」ファイルを作成しました。
touch /usr/local/var/postgres/{{pg_commit_ts,pg_dynshmem,pg_replslot,pg_serial,pg_snapshots,pg_stat,pg_stat_tmp,pg_tblspc,pg_twophase},pg_logical/{mappings,snapshots}}/.keep
注 :.keep
を作成する これらのディレクトリにあるファイルは、ログファイルにノイズを発生させますが、他の何かに悪影響を与えるようには見えません。