Я только что обновил свой MacMini Server с Lion Server до Mountain Lion с помощью OS X Server. У меня та же проблема с PostgreSQL, что и в прошлом году, когда я впервые установил Lion Server.
Когда я пытаюсь выполнить какую-либо команду терминала PostgreSQL, я получаю следующее печально известное сообщение об ошибке, которое многие получали за эти годы:
psql: could not connect to server: No such file or directory
Is the server running locally and accepting
connections on Unix domain socket "/var/pgsql_socket/.s.PGSQL.5432"?
Я пытался изменить пароль для _postgres, когда получил сообщение об ошибке. Я пробовал несколько команд, но получил ту же ошибку. Я только что перезагрузил свой сервер, но безуспешно. Я вошел в систему как root, чтобы посмотреть / var / pgsql_socket, а папка пуста. Папка / var / pgsql_socket_alt также пуста.
Я проверил это в Интернете. Однако почти все решения, которые я прочитал, включая Stack Overflow, предлагают удалить и переустановить PostgreSQL. Я не знаю, но это не кажется правдоподобным вариантом, потому что несколько вариантов в серверном приложении используют PostgreSQL. Я связался со службой поддержки Apple Enterprise (без соглашения), и мне сказали, что мою проблему должны решить разработчики, которые потратят 695 долларов.
У меня есть сайт, который сейчас не работает, потому что я не могу его восстановить. Я не знаю, куда обратиться за помощью на данный момент. Я буду продолжать поиски в Интернете, чтобы узнать, смогу ли я что-нибудь найти. Однако я надеюсь, что кто-то сможет быстро дать мне ответ, и я смогу восстановить свою базу данных.
Обновление: 13.12.2012 15:33 GMT-6
Вот мой результат для ps auwwx | grep postg:
_postgres 28123 0.0 0.1 2479696 7724 ?? Ss 3:01PM 0:00.04 /Applications/Server.app/Contents/ServerRoot/usr/bin/postgres_real -D /Library/Server/PostgreSQL For Server Services/Data -c listen_addresses= -c log_connections=on -c log_directory=/Library/Logs/PostgreSQL -c log_filename=PostgreSQL_Server_Services.log -c log_line_prefix=%t -c log_lock_waits=on -c log_statement=ddl -c logging_collector=on -c unix_socket_directory=/Library/Server/PostgreSQL For Server Services/Socket -c unix_socket_group=_postgres -c unix_socket_permissions=0770
server1 28216 0.0 0.0 2432768 620 s000 R+ 3:02PM 0:00.00 grep postg
_postgres 28138 0.0 0.0 2439388 752 ?? Ss 3:01PM 0:00.01 postgres: stats collector process
_postgres 28137 0.0 0.0 2479828 1968 ?? Ss 3:01PM 0:00.00 postgres: autovacuum launcher process
_postgres 28136 0.0 0.0 2479696 544 ?? Ss 3:01PM 0:00.00 postgres: wal writer process
_postgres 28135 0.0 0.0 2479696 732 ?? Ss 3:01PM 0:00.01 postgres: writer process
_postgres 28134 0.0 0.0 2479696 592 ?? Ss 3:01PM 0:00.00 postgres: checkpointer process
_postgres 28131 0.0 0.0 2439388 368 ?? Ss 3:01PM 0:00.00 postgres: logger process
Обновление: 13.12.2012 18:10 GMT-6
После интенсивного поиска в Интернете было найдено это видео. Мне удалось заставить PostgreSQL работать и удалить ошибку. Я могу подключиться с помощью pgadmin и phppgadmin. Я собирался вернуться в Lion Server из-за полного разочарования. Теперь мне не придется.
источник
psql
находится на вашем компьютереPATH
до установленной вами версии. Они ищут сокет unix в разных местах. Либо используйте tcp / ip, указав,-h localhost
либо, желательно, исправьте,PATH
чтобыpsql
сначала было найдено правильное . Причудливое решение Apple не только связать PostgreSQL, но и возиться с ним, чтобы поместить вещи в нестандартные места, является основной причиной этой проблемы.homebrew
иosx
@CraigRinger может дать вам правильный ответ, подтвердите с помощьюbrew doctor
.Ответы:
Мне удалось добавить в свой .bash_profile следующее, чтобы предотвратить ошибку:
Это работает, потому что :
Ваша ОС поддерживает сокеты домена Unix, но требуемый сокет Unix PostgreSQL
psql
либо не существует, либо находится в другом месте, чем ожидалось.Явное указание имени хоста
localhost
заставляетpsql
использовать TCP / IP. Установка переменной окруженияPGHOST
- один из способов добиться этого. Это задокументировано в руководстве по psql .источник
host: localhost
в database.yml. @dwhalendatabase.yml
, когда эта ошибка появилась после понижения версии Postgres до более старой версии, управляемой Homebrew.Попробуйте вставить в консоль это:
источник
Я смог решить, просто заполнив 127.0.0.1 для адреса хоста PostgreSQL, а не оставляя его пустым. (Пример Django)
источник
Откройте postgresql.conf в любимом редакторе. Найдите переменную unix_socket_directories, она, скорее всего, будет выглядеть так:
Измените строку на эту:
Обратите внимание, если вы хотите, чтобы файлы сокетов находились в нескольких каталогах, их разделяла запятая.
источник
Намного более простое решение (спасибо http://daniel.fone.net.nz/blog/2014/12/01/fixing-connection-errors-after-upgrading-postgres/ ). Я обновился до postgres 9.4. В моем случае все, что мне нужно было сделать (после дня поиска в Google и безуспешного)
Перезапустите webrick - готово!
источник
Как упоминалось другими в комментариях, действительно простым решением этой проблемы является объявление базы данных «хостом» в конфигурации базы данных. Добавляем этот ответ, чтобы сделать его немного более понятным для всех, кто это читает.
Например, в приложении Ruby on Rails отредактируйте /config/database.yml:
Примечание: последняя строка добавлена для указания хоста. До обновления до Yosemite мне никогда не нужно было указывать хост таким образом.
Надеюсь, это кому-то поможет.
Ура
источник
.s.PGSQL.5432
файл.Проверить статус базы данных:
Если база данных не запущена, запустите db:
источник
Вы можете проверить свой файл postgresql.conf ??
На каком порту работает ваш postgres ??
Я думаю, что он не работает на порту 5432. Если не изменить его на 5432
ИЛИ при использовании терминала
источник
У меня была эта проблема с Django.
Исправьте это, явно указав имя хоста «localhost».
источник
я выражаю словами, делая это:
и выберите предпочитаемые регионы
(9.5 - моя версия postgresql)
а потом это слово!
источник
Если у вас есть указанная выше проблема, но вы обновились с Yosemite, тогда необходим другой подход, поскольку решение для обновления может уничтожить некоторые файлы. Более подробная информация находится на странице `pg_tblspc`, отсутствующей после установки последней версии OS X (Yosemite или El Capitan) .
источник
источник
Я продолжал получать указанную выше ошибку, и ни одно из приведенных выше решений не помогло мне. Наконец, следующее решение решило мою проблему в Mac OS X
Установите postgres с помощью brew
Установить сервисы пивоварения
Чтобы запустить postgres как фоновую службу
Чтобы остановить postgres вручную
Мы также можем использовать сервисы brew для перезапуска Postgres
источник
проверьте, что сервер postgres работает со следующим кодом
если сервер postgres неактивен, напишите следующую команду.
источник
Я получил эту ошибку после того, как мой компьютер завис и перезагрузился самостоятельно. Решение для меня не было найдено на этой странице, а скорее в другом очень высоко оцененном вопросе SO с той же ошибкой psql: не удалось подключиться к серверу: нет такого файла или каталога (Mac OS X) . Ответ: просто удалите этот файл
/usr/local/var/postgres/postmaster.pid
,brew services restart postgresql
и дело в шляпе. Обратите внимание на предупреждение в связанном ответе об убийстве процессов postgres, прежде чем делать это, иначе вы можете навсегда испортить свою базу данных.источник
Для приложения RubyOnRails добавьте
localhost
Если вы используете собственную версию Postgresqlисточник
Права доступа к файлам являются ограничительными для базы данных Postgres, принадлежащей Mac OS. Эти разрешения сбрасываются после перезагрузки или перезапуска Postgres: например, serveradmin start postgres.
Итак, временно сбросьте разрешения или право собственности:
Сброс разрешений небезопасен, поэтому для решения установите версию базы данных, которой вы владеете.
источник
Это заняло у меня некоторое время, но я, наконец, смог заставить это работать после рассмотрения предложенных предложений и выполнения дополнительных поисков в Интернете. Я использовал информацию из следующего видео на YouTube, созданного Mactasia:
http://www.youtube.com/watch?v=y1c7WFMMkZ4
Когда я это сделал, я увидел файл с расширением .lock. Однако я все еще получал ошибку, когда пытался запустить Rails Server, когда я возобновил работу над своим приложением Rails с помощью PostgreSQL. На этот раз я получил ошибку отказа в разрешении. Тогда я вспомнил, что мне нужно было не только изменить listen_addresses в plist, но и изменить unit_socket_permissions на 0777. Я также вошел в систему как root, чтобы изменить права доступа к папке var / pgsql_socket, где я мог получить к ней доступ в уровень пользователя. Postgres теперь работает нормально. Я загружаю данные из резервной копии SQL.
Я не понимал, что когда я включил вики, PostgreSQL предположительно работал, когда я сделал sudo serveradmin fullstatus postgres, но я все равно получил ошибку. Ну что ж.
источник
Я только что создал новый кластер, и у меня это сработало, я использовал (PostgreSQL) 9.3.20:
источник
Сначала удалите установленный postgres:
Затем установите synaptic:
Затем установите Postgres
источник