Назад | Перейти на главную страницу

Проблемы с установкой Postgresql в OS X

Я использовал Fink для установки postgresql на os x. когда я пытаюсь запустить psql, я получаю:

psql: could not connect to server: No such file or directory
    Is the server running locally and accepting
    connections on Unix domain socket "/tmp/.s.PGSQL.5432"?

Я никогда раньше не устанавливал postgresql, поэтому не совсем уверен, где искать. Есть предложения?

Это означает, что демон PostgreSQL не запущен. Вы захотите найти, где установлен демон. По умолчанию он должен быть установлен в / usr / local / pgsql. Если он там есть, проверьте, есть ли каталог / usr / local / pgsql / data. Если нет, выполните следующее:

/ usr / локальный / pgsql / bin / initdb -D / usr / локальный / pgsql / данные

затем, в случае успеха, запустите

/ usr / local / pgsql / bin / pg_ctl -D / usr / local / pgsql / начало данных

И это должно привести вас на верный путь.

Мне кажется, вы пытаетесь запустить PostgresSQL под своей текущей учетной записью. Я не знаю свойств fink для PostgreSQL, но связанные демоны должны запускаться под выделенной учетной записью пользователя (скажем, Postgres например).

Сначала определите каталог данных, в котором PostgresSQL хранит свои данные и файлы конфигурации. В ваших сообщениях об ошибках указано, что это может быть "/Library/PostgreSQL/8.4/data". Этот каталог уже должен принадлежать Postgres-user и получить для него rwx-привилегии. Думаю, Финк уже создал его, так что просмотрите журналы установки.

Загляните внутрь этого каталога (вам может потребоваться su / sudo, потому что у вас может не быть достаточных прав для этого с вашим пользователем консоли). Если есть какие-то файлы, например. postgresql.conf, куча pg_ * и некоторых других файлов, все принадлежащие Postgres, каталог данных кажется в порядке, в противном случае вызовите следующее (замените двоичный путь, Postgres-user и путь к данным с вашими системными значениями, дополнительные параметры см. в man initdb):

sudo -u postgres /usr/local/pgsql/bin/initdb  -D /Library/PostgreSQL/8.4/data

Это важный в sudo в качестве пользователя postgres, потому что учетная запись пользователя, от имени которой работают демоны postgres, должна иметь достаточные права доступа.

Кроме того, вам нужно будет запустить deamon с помощью sudo (позже это должно быть обработано с помощью lauchctl-entry или чего-то подобного), поэтому:

sudo -u postgres /usr/local/pgsql/bin/pg_ctl -D /Library/PostgreSQL/8.4/data

Вы всегда можете заново создать каталог данных, но обязательно сделайте резервную копию и не перезаписывайте ее, когда postgres все еще работает.

Вы можете проверить, что Postgresql запущен и слушает:

lsof -i |grep LISTEN

Похоже, что у вас не запущен сервер и, возможно, вы не запустили initdb

Однако, если у вас больше проблем, самый простой (и рекомендуемый postgresql) способ установить postgresql в Mac OS X - через установщик с графическим интерфейсом, предоставляемый EnterpriseDB. Он даже неплохо справляется с установкой нескольких версий.