Я обновляюсь до Postgres 9.2.2 (с 9.1.4). Когда я пытаюсь обновить БД, используя:
pg_upgrade -b /usr/local/Cellar/postgresql/9.1.4/bin -B /usr/local/Cellar/postgresql/9.2.2/bin -d /usr/local/var/postgres91 -D /usr/local/var/postgres
Я получаю следующее сообщение об ошибке:
Performing Consistency Checks
-----------------------------
Checking current, bin, and data directories ok
There seems to be a postmaster servicing the old cluster.
Please shutdown that postmaster and try again.
Failure, exiting
Я пытаюсь остановить сервер, но не могу заставить команду обновления работать. Как мне закрыть старый почтмейстер?
postgresql
postgresql-9.2
Лучано
источник
источник
В OS X Yosemite после установки PostgreSQL через Homebrew:
источник
pg_ctl -D /usr/local/var/postgres/ stop
вернетсяNo such process
, то вам следуетrm /usr/local/var/postgres/postmaster.pid
.В большинстве систем Unix вы найдете сценарий инициализации, в
/etc/init.d
котором вы можете использовать для запуска, перезапуска, перезагрузки или остановки служб Unix.например
Если это не доступно, вы можете использовать
pg_ctl stop
например
Больше о
pg_ctl
http://www.postgresql.org/docs/9.1/static/app-pg-ctl.html
РЕДАКТИРОВАТЬ Если вы все еще получаете ошибку, и вы уверены, что почтмейстер больше не работает (проверьте с
sudo ps aux | grep "postmaster"
- должен возвращать только одну строку), у вас все еще есть файл pid после нечистого завершения работыУдалить pidfile, например
источник
pg_ctl stop
, я получаю:pg_ctl: no database directory specified and environment variable PGDATA unset
. Кстати, ни один сервер не работаетluciano$ ps auxwww | grep postgresluciano 995 0.0 0.0 2434892 548 s000 R+ 10:42PM 0:00.00 grep postgres
.sudo ps aux | grep "postmaster"
luciano 3101 0.0 0.0 2434892 548 s002 S+ 9:12PM 0:00.00 grep postmaster
В Ubuntu остановите службу PostgreSQL перед выполнением обновления. Это остановит все экземпляры postgres независимо от установленных версий.
service postgresql stop
источник