Нераспознанный параметр конфигурации "dynamic_shared_memory_type"
У меня возникли проблемы с подключением к postgres (установленному с использованием hombrew версии 9.4.4). Я ранее смог успешно подключиться. Единственное, что, я считаю, могло измениться, я установил PHP 5.5.
Я пытаюсь запустить сервер:
postgres -D /usr/local/var/postgres
LOG: unrecognized configuration parameter "dynamic_shared_memory_type"
in file "/usr/local/var/postgres/postgresql.conf" line 130
FATAL: configuration file "/usr/local/var/postgres/postgresql.conf"
contains errors
Мои журналы сервера возвращают те же ошибки.
Вот содержимое файла postgresql.conf, который выдает ошибку:
dynamic_shared_memory_type = posix # the default is the first option
# supported by the operating system:
# posix
# sysv
# windows
# mmap
# use none to disable dynamic shared memory
В попытках устранения неполадок я прокомментировал dynamic_shared_memory_type и получил эту ошибку:
FATAL: database files are incompatible with server
DETAIL: The data directory was initialized by PostgreSQL version 9.4,
which is not compatible with this version 9.3.5.
Однако, запустив brew info postgres, мне сказали, что моя версия - 9.4.4.
Ответы
Ответ 1
Эта команда:
$ postgres -D /usr/local/var/postgres
запускает все postgres
двоичный файл сначала в $PATH
.
В вашем случае это postgres 9.3.5, предположительно, из предыдущей установки и/или другого установщика. Эта версия не может работать с postgresql.conf для 9.4.x из-за нового параметра dynamic_shared_memory_type
, но что более важно, она не может работать с каталогом данных 9.4.x в любом случае (форматы данных не совместимы в основных версиях).
Команда which postgres
сообщит, где она находится на диске.
Обычно двоичный код postgres
для brew должен располагаться в /usr/local/bin/postgres
. Чтобы избежать конфликтов с другими postgres, запустите его с абсолютным путем вместо относительного:
$ /usr/local/bin/postgres -D /usr/local/var/postgres
и
$ /usr/local/bin/postgres -v
чтобы просто проверить номер версии.
В Mac OS X существует довольно много разных инсталляторов, перечисленных в:
https://wiki.postgresql.org/wiki/Installers/Mac_OS_X
с разным расположением дисков. На Mac нет ничего необычного, чтобы попробовать разные инсталляторы и в итоге установить несколько установок postgres параллельно.