2013-10-03 2 views
1

Хорошо. Я пытался решить эту проблему в течение нескольких дней. Я установил, удалил и снова установил Postgresql 3 раза. Я следовал точно инструкциям в этом форуме: https://dba.stackexchange.com/questions/42048/cant-connect-to-the-postgres-server-ls-tmp-s-pgsql-5432-no-such-file-or-dirПочему я не могу запустить сервер postgresql?

я нашел это решение во многих форумах, так что я пытался бежать:

$ mkdir /var/pgsql_socket/ 
$ sudo mkdir /var/pgsql_socket/ 
$ ln -s /private/tmp/.s.PGSQL.5432 /var/pgsql_socket/ 

Но это не сработало. Когда я пытаюсь запустить сервер, он все еще говорит, что еще один работает, а затем продолжает терпеть неудачу каждый раз, когда я пытаюсь создать базу данных или введите «psql»

Затем я попытался запустить следующее, чтобы изменить путь команд от встроенной версии OS X о Postgres в моей версии, и это, казалось, работали:

$ cd /usr/local/bin 
$ rm postgres 
$ ln -s /Library/PostgreSQL/9.2/bin/postgres postgres 
$ rm psql 
$ ln -s /Library/PostgreSQL/9.2/bin/psql psql 
$ rm pg_ctl 
$ ln -s /Library/PostgreSQL/9.2/bin/pg_ctl pg_ctl 

тогда я побежал следующее, чтобы создать пользователя для Postgres:

$ sudo -u postgres createuser --superuser $Sarah 
$ sudo -u postgres createuser --superuser user_sarah 
$ sudo -u postgres psql postgres 

Но твердил "Неизвестный пользователь postgres" Я n попытался установить Ruby pg gem, но это тоже не удалось, сказав, что есть проблема с необходимыми библиотеками.

Я сохранил текстовый файл всего, что я пытался сделать в терминале. Дайте мне знать, если я опубликую это. Благодарю.

обновление: Когда я пытаюсь запустить это: $ pg_ctl -D /usr/local/var/postgres -l /usr/local/var/postgres/server.log start я получаю это: -bash: /usr/local/bin/pg_ctl: No such file or directory Которая отличается от многих других ошибок, которые я видел, размещенная на этой проблеме.

+0

У вас есть аккаунт 'postgres' на компьютере? Я предполагаю, что нет, поскольку он говорит, что неизвестный пользователь ... –

+0

Так что это нечто иное, чем то, что я пытался сделать с 'createuser'? Если так, то нет. Я попытался сделать это по-другому, и я дал эту ошибку 'createuser: создание новой роли не удалось: ERROR: роль« Сара »уже существует» – tinytown

+0

Начните с того, откуда вы скачали pg, из которого будет указано, какие инструкции по установке применяются –

ответ

1

Во-первых, вы должны убедиться, что нет работы postmaster: ps -ef | grep postmaster. как только вы подтвердите, что почтовый мастер не работает, вы должны зайти в команду postgresql initd. В зависимости от установки вашего сервера он может быть установлен или не установлен. Перед попыткой запуска postgres вам необходимо создать базу данных. Это звучит так, как будто у вас установлена ​​установка, в которой не были установлены основные команды postgresql для/usr/bin, причем pg_ctl является одним из них.

FYI: учетная запись postgres не является учетной записью входа и создается автоматически при установке postgresql, поэтому она должна быть там, если у вас была хорошая установка. Вы не можете sudo как postgres, если postgres не находится в файле sudoers.

+0

В чем проблема с запуском postmaster? – thedanotto

+0

В общем, я не люблю запускать initd в postgres, если postmaster уже запущен. Оффлайн, я не знаю, как это будет реагировать. –

1

Установщик из PostgreSQL для доморощенного не создает или не нуждается в учетной записи postgres, поэтому все упоминания о выполнении sudo -u postgres или ps -fu postgres не относятся к вашему делу.

Команда brew info postgresql выводит различную информацию о начале и остановке, вы можете прочитать их. Напротив, вы не хотите ставить слепую веру в то, что случайные пользователи рассказывают о том, как они «исправили» свою нерабочую установку. На самом деле, сеть несет шокирующее количество плохих советов относительно PostgreSQL на MacOS X, и для меня ответ, который вы связали с dba.se, среди них. С начала до конца это неправильно, и вы должны заметить, что это не было принято в качестве ответа. Конечно, автор хорошо говорит, но он не видит, что его собственный контекст не может быть обобщен для других установок.

Худшая часть является предложение удалить в /usr/local/bin/ двоичных файлов postgres, psql, pg_ctl и мягкое, связывая их в предполагаемые эквиваленты внутри /Library/PostgreSQL/9.2/bin/. Для меня это просто прерывает установку доморощенного. Не удивительно, что после выполнения этого вы получите эту ошибку:

/usr/local/bin/pg_ctl: No such file or directory

Так что мой ответ будет переустановить PostgreSQL с варевом, чтобы перезапустить из чистого состояния, то убедитесь, что все Postgres команды запуска взяты из /usr/local/bin и всегда сначала читайте файл журнала сервера, переданный в pg_ctl, если у вас есть какие-либо сомнения по поводу чего-либо связанного с PG.

Смежные вопросы