Postgres не может подключиться к серверу

418

После того, как я сделал brew update и brew upgrade, у моего postgres возникли некоторые проблемы. Я попытался удалить postgres и установить снова, но это не сработало.

Это сообщение об ошибке. (Я также получил это сообщение об ошибке, когда я пытаюсь сделать rake db: migrate)

$ 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"?

Как я могу решить это?

Mac версия: Горный лев.

доморощенная версия: 0.9.3

версия postgres: psql (PostgreSQL) 9.2.1

И это то, что я сделал.

12:30 ~/D/works$ brew uninstall postgresql
Uninstalling /usr/local/Cellar/postgresql/9.2.1...
12:31 ~/D/works$ brew uninstall postgresql
Uninstalling /usr/local/Cellar/postgresql/9.1.4...
12:31 ~/D/works$ psql --version
bash: /usr/local/bin/psql: No such file or directory
12:33 ~/D/works$ brew install postgresql
==> Downloading http://ftp.postgresql.org/pub/source/v9.2.1/postgresql-9.2.1.tar.bz2
Already downloaded: /Library/Caches/Homebrew/postgresql-9.2.1.tar.bz2
......
......
==> Summary
/usr/local/Cellar/postgresql/9.2.1: 2814 files, 38M, built in 2.7 minutes
12:37 ~/D/works$ initdb /usr/local/var/postgres -E utf8
The files belonging to this database system will be owned by user "laigary".
This user must also own the server process.

The database cluster will be initialized with locale "en_US.UTF-8".
The default text search configuration will be set to "english".

initdb: directory "/usr/local/var/postgres" exists but is not empty
If you want to create a new database system, either remove or empty
the directory "/usr/local/var/postgres" or run initdb
with an argument other than "/usr/local/var/postgres".
12:39 ~/D/works$ mkdir -p ~/Library/LaunchAgents
12:39 ~/D/works$   cp /usr/local/Cellar/postgresql/9.2.1/homebrew.mxcl.postgresql.plist ~/Library/LaunchAgents/
12:39 ~/D/works$   launchctl load -w ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist
homebrew.mxcl.postgresql: Already loaded
12:39 ~/D/works$ pg_ctl -D /usr/local/var/postgres -l /usr/local/var/postgres/server.log start
server starting
12:39 ~/D/works$ env ARCHFLAGS="-arch x86_64" gem install pg
Building native extensions.  This could take a while...
Successfully installed pg-0.14.1
1 gem installed
12:42 ~/D/works$ psql --version
psql (PostgreSQL) 9.2.1
12:42 ~/D/works$ 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"?

Теперь, после того, как я переустановил Howbrew, когда я использую $ psql, он не показывает никаких сообщений об ошибках.

Но я бегу rake db:migrateв своем приложении rails, оно показывает:

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"?
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/connection_adapters/postgresql_adapter.rb:1213:in `initialize'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/connection_adapters/postgresql_adapter.rb:1213:in `new'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/connection_adapters/postgresql_adapter.rb:1213:in `connect'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/connection_adapters/postgresql_adapter.rb:329:in `initialize'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/connection_adapters/postgresql_adapter.rb:28:in `new'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/connection_adapters/postgresql_adapter.rb:28:in `postgresql_connection'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/connection_adapters/abstract/connection_pool.rb:309:in `new_connection'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/connection_adapters/abstract/connection_pool.rb:319:in `checkout_new_connection'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/connection_adapters/abstract/connection_pool.rb:241:in `block (2 levels) in checkout'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/connection_adapters/abstract/connection_pool.rb:236:in `loop'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/connection_adapters/abstract/connection_pool.rb:236:in `block in checkout'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/1.9.1/monitor.rb:211:in `mon_synchronize'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/connection_adapters/abstract/connection_pool.rb:233:in `checkout'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/connection_adapters/abstract/connection_pool.rb:96:in `block in connection'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/1.9.1/monitor.rb:211:in `mon_synchronize'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/connection_adapters/abstract/connection_pool.rb:95:in `connection'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/connection_adapters/abstract/connection_pool.rb:404:in `retrieve_connection'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/connection_adapters/abstract/connection_specification.rb:170:in `retrieve_connection'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/connection_adapters/abstract/connection_specification.rb:144:in `connection'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/railties/databases.rake:107:in `rescue in create_database'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/railties/databases.rake:51:in `create_database'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/railties/databases.rake:40:in `block (3 levels) in <top (required)>'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/railties/databases.rake:40:in `each'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/railties/databases.rake:40:in `block (2 levels) in <top (required)>'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/1.9.1/rake/task.rb:205:in `call'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/1.9.1/rake/task.rb:205:in `block in execute'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/1.9.1/rake/task.rb:200:in `each'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/1.9.1/rake/task.rb:200:in `execute'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/1.9.1/rake/task.rb:158:in `block in invoke_with_call_chain'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/1.9.1/monitor.rb:211:in `mon_synchronize'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/1.9.1/rake/task.rb:151:in `invoke_with_call_chain'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/1.9.1/rake/task.rb:144:in `invoke'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/1.9.1/rake/application.rb:116:in `invoke_task'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/1.9.1/rake/application.rb:94:in `block (2 levels) in top_level'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/1.9.1/rake/application.rb:94:in `each'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/1.9.1/rake/application.rb:94:in `block in top_level'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/1.9.1/rake/application.rb:133:in `standard_exception_handling'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/1.9.1/rake/application.rb:88:in `top_level'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/1.9.1/rake/application.rb:66:in `block in run'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/1.9.1/rake/application.rb:133:in `standard_exception_handling'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/1.9.1/rake/application.rb:63:in `run'
/usr/local/bin/rake:32:in `<main>'
Couldn't create database for {"adapter"=>"postgresql", "encoding"=>"unicode", "database"=>"riy_development", "pool"=>5, "username"=>nil, "password"=>nil}

Наконец-то я нахожу решение.

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

Это решение немного сложнее, но оно работает. Надеюсь, у кого-нибудь есть лучшее решение

Обновить

Это работает и для меня.

rm /usr/local/var/postgres/postmaster.pid
Гэри Лай
источник
3
У меня точно такая же проблема, но ваше решение у меня не сработало. Я думаю, что это проблема с разрешениями, но у меня нет знаний о правах доступа к файлам, чтобы это исправить.
ajbraus
Для тех, кто устанавливает PG через Homebrew и возникают проблемы, я нашел другой ответ. Просто удалите pg gem и переустановите с помощью настроек Homebrew. Смотрите ответ на stackoverflow.com/a/19609228/1072058 .
zquintana
аналогичный ответ здесь - stackoverflow.com/questions/13573204/…
VelLes
1
Начать postgres.
ATW
4
Обновите существующую до новой версии с помощью следующей команды brew postgresql-upgrade-database

Ответы:

801

Была похожая проблема; файл pid блокировал запуск postgres. Исправить это:

rm /usr/local/var/postgres/postmaster.pid

и тогда все хорошо.

jonathanpberger
источник
5
Это работало для меня на OSX Mavericks после просмотра этой проблемы при обновлении / перезапуске.
eprothro
3
@jstafford спасибо, я уже решил! :) Решением было удалить через homebew и сразу же перезагрузить компьютер, чтобы я мог переустановить postgres. Старая версия работала в фоновом режиме, создавая файлы и конфликты каждый раз, когда я пытался переустановить postgres.
betoharres
200
Это не сработало для меня на Маверикс:rm: /usr/local/var/postgres/postmaster.pid: No such file or directory
sscirrus
17
Это сработало для меня, после удаления мне пришлось начать postgres. # pg_ctl -D / usr / local / var / postgres -l /usr/local/var/postgres/server.log start
Рикардо Кастанеда
13
Я рекомендую следить за журналом сервера, чтобы убедиться, что это действительно проблема:tail /usr/local/var/postgres/server.log
Джош Бода
256

Иногда это может быть проблемой при обновлении postgres.

В моем случае это произошло при обновлении с 9.3 до 9.4.

См. Http://www.postgresql.org/docs/9.4/static/upgrading.html.

OS X / Homebrew:

Попробуйте запустить postgres -D /usr/local/var/postgres- это даст вам гораздо более подробный вывод, если postgres не запускается.

В моем случае, запуск rm -rf /usr/local/var/postgres && initdb /usr/local/var/postgres -E utf8удалил мои старые базы данных и затем повторно инициализировал схему postgres db.

Спасибо https://github.com/Homebrew/homebrew/issues/35240 за это решение.

После регенерации моих баз данных (с rake db:create) все снова заработало нормально.

FreePender
источник
1
Это сработало для меня, когда на Yosemite был установлен доморощенный постгрес.
cpursley
7
Если в результате выполнения команды postgres -D /usr/local/var/postgresвам сообщают, что каталог данных был инициализирован более старой несовместимой версией Postgres, и вы не хотите терять свои локальные данные, вы можете попробовать эту тему
Nathan Long
После запуска вышеуказанной команды я запустил: pg_ctl -D /usr/local/var/postgres -l logfile startи мой сервер запустился в фоновом режиме
Tommyixi
5
Используйте brew services start postgresна OSX для запуска postgres на фоне вместоpostgres -D /usr/local/var/postgres
Майк Андрианов
1
@coffekid У меня была та же проблема, и я исправил ее с помощью инструкций здесь: stackoverflow.com/questions/24379373/…
Мика Уолтер,
69

Нашел решение, которое работает для меня здесь:

/dba/75214/psql-could-not-connect-to-server-no-such-file-or-directory

Вы запускаете следующую команду, чтобы запустить сервер вручную:

pg_ctl -D /usr/local/var/postgres -l /usr/local/var/postgres/server.log start
Мосаб Саси
источник
8
Из всех ответов это единственный, который работал на меня. Использование El Capitan
Patrick_870206
Я пытался с этим cmd, но не работает для меня!
Харшит Триведи
41

Если установка и удаление postgres с brew вам не помогли, посмотрите журналы вашей установки postgresql или:

postgres -D /usr/local/var/postgres

если вы видите этот вид вывода:

LOG:  skipping missing configuration file "/usr/local/var/postgres/postgresql.auto.conf"
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.6.1.

Затем попробуйте следующее:

rm -rf /usr/local/var/postgres && initdb /usr/local/var/postgres -E utf8

Затем запустите сервер:

pg_ctl -D /usr/local/var/postgres -l logfile start

Источник

svelandiag
источник
2
Это работает, когда причина отличается от принятого ответа, то есть файлы базы данных не совместимы с текущей версией. Так как именно это было моей проблемой, я приветствую.
Фальк
1
эта команда работает для меня.
Ccr
работает на Мохаве 10.14.6
Sgryt87
34

В Yosemite, если pid-файл блокирует запуск Postgres, и у вас есть launchctlдемон, пытающийся (и неуспешно) загружающий демоны базы данных, тогда вам необходимо выгрузить файл plist:

$ launchctl unload ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist

Затем удалите файл PID

$ rm /usr/local/var/postgres/postmaster.pid

Затем перезагрузите launchctlдемон

$ launchctl load ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist
Райан Аталла
источник
28

Для тех, кто читает это и использует Postgres.app, вам может понадобиться host: localhostваш database.yml. http://postgresapp.com/documentation#toc_3

Дэвид Винецки
источник
Это меняет соединение с сокета на соединение TCP, что может иметь негативные последствия. См. Stackoverflow.com/questions/6770649/…
Бретт Бим
1
Хм, вообще-то, если ты понизишь голос ... Может, не скажешь почему? meta.stackoverflow.com/questions/252297/… Или, может быть, скажите почему, но сначала выйдите из системы, чтобы быть анонимным.
Дэвид Винецки
Я думаю, что отрицательное голосование связано с тем, что первоначальный вопрос был не для Postgres.app, а для Homebrew. Таким образом, хотя ответ может быть полезным где-то, он не отвечает на вопрос.
Брайан Дорогой
Ссылка, похоже, никуда не ведет (а поиск «localhost» в прошлом не дал результатов), но это только исправило проблему для меня после часа поиска.
шестьдесят четыре бита
25

Обновление базы данных работает для меня

brew postgresql-upgrade-database

Томер Г
источник
👍✅⭐️🙏 Спасибо, Томер! Это сработало для меня 6/2/20 с 9,4 до 12 на MacOS Mojave 10.14.6
Роб Беднарк
19
brew services start postgres 

работал на меня!

RLD
источник
17

Убедитесь, что файл сокета существует.

$ ls -l /tmp/.s.PGSQL.5432
srwxrwxrwx  1 you  wheel  0 Nov 16 09:22 /tmp/.s.PGSQL.5432

Если это не так, проверьте ваш postgresql.conf на предмет изменения unix_socket_directory.

$ grep unix_socket /usr/local/var/postgres/postgresql.conf
#unix_socket_directory = ''     # (change requires restart)
#unix_socket_group = ''         # (change requires restart)
#unix_socket_permissions = 0777     # begin with 0 to use octal notation
jrwren
источник
1
Это мой компьютерный ответ. $ ls -l /tmp/.s.PGSQL.5432 ls: /tmp/.s.PGSQL.5432: No such file or directory $ grep unix_socket /usr/local/var/postgres/postgresql.conf #unix_socket_directory = '' # (change requires restart) #unix_socket_group = '' # (change requires restart) #unix_socket_permissions = 0777 # begin with 0 to use octal notation
Гэри Лай
29
Наконец-то я нахожу решение. $ mkdir /var/pgsql_socket/ $ sudo mkdir /var/pgsql_socket/ $ ln -s /private/tmp/.s.PGSQL.5432 /var/pgsql_socket/Это решение немного сложнее, но оно работает. Надеюсь, у кого-нибудь есть лучшее решение
Гэри Лай
хорошая работа @GaryLai. Очень странно, что мне не пришлось делать то же самое с моим доморощенным postgresql
jrwren
2
это может помочь некоторым людям там: github.com/mxcl/homebrew/issues/14527
AdamT
14

Проблема также может быть связана с аварийным процессом, который оставил файл postmaster.pid. Я делаю это и работаю:

$ brew services stop postgresql
$ rm /usr/local/var/postgres/postmaster.pid # adjust path accordingly to your install
$ brew services start postgresql
RLD
источник
10

Самый надежный способ обойти это

brew reinstall postgresql

Это сохранит все ваши права пользователя и т. Д., И все будет сброшено на новый. Работает все время!

attaboyabhipro
источник
работал как чемпион !!!! Это было все необходимое.
Акаш К
Это работает, но я рекомендую, если rm /usr/local/var/postgres/postmaster.pidна Mac OS не работал, используйте эту команду.
Ясен Ахмад
10

Проблема в том, что на порту 5432 уже запущена служба, и мы не можем установить соединение через сокет psql через этот порт.

Я удалил файл сокета

rm -rf /tmp/.s.PGSQL.5432/

Затем я переинициализировал сервис Postgres

postgres -D /usr/local/var/postgres

Это сработало для меня.

Абдулла Гурсу
источник
7

Изменение настроек конфигурации postresql или database.yml, изменение $ PATH или создание символических ссылок были для меня ненужными. Все, что мне нужно было сделать, это gem uninstall pgи тогда bundle(или gem install pg).

Проблема заключалась в том, что pg gem был установлен до homegrew postgres, поэтому собирал настройки из версии postgres, которая поставляется с MacOS. Переустановка его (и, следовательно, восстановление собственного расширения) устранила проблему.

Джон
источник
Просто хотел сказать спасибо. Я только что обновил PostgresApp на macOS, и хотя я мог подключиться с помощью psql, я не смог подключиться через rails. удаление и переустановка pg gem - это просто билет! :)
craig1410
7

Это произошло со мной, когда я обновил с 9.3.4 до 9.5, поскольку базы данных несовместимы без обновления.

Я использовал pg_upgrade следующим образом:

Стоп постгрес

$ brew services stop postgresql

Обновите базы данных:

$ pg_upgrade \
   -d /usr/local/var/postgres \
   -D /usr/local/var/postgres9.5 \
   -b /usr/local/Cellar/postgresql/9.3.4/bin/ \
   -B /usr/local/Cellar/postgresql/9.5.0/bin/ \
   -v

Архивировать старые базы данных:

 $ mv /usr/local/var/postgres /usr/local/var/postgres9.3.save
 $ mv /usr/local/var/postgres9.5 /usr/local/var/postgres

Перезапустите postgres:

 $ brew services start postgresql

Обновлены самоцветы (для рельсов / активной записи):

 $ gem uninstall pg
 $ gem uninstall activerecord-postgresql-adapter
 $ bundle install
stujo
источник
Эти инструкции также на collectiveidea.com/blog/archives/2016/01/08/... , и до сих пор работали на меня сегодня при обновлении с 9.4.0 до 9.6.3. Мне не нужно было ничего делать с файлом .pid вручную.
Ян Хеттих
7

На самом деле это то, что вы должны делать:

вместо этого вы должны посмотреть на /usr/local/var/postgres/postmaster.pid

а затем посмотрите на первую строку файла - это плохой PID

Запустить

ps aux | grep <PID>

например:

ps aux | grep 12345

тогда делай

kill <PID>

например

kill 12345

Предполагая, что он все еще работает

/superuser/553045/fatal-lock-file-postmaster-pid-already-exists

не слушайте принятый ответ, это плохо и испортит ваши данные !!!

user1596067
источник
Спасибо, это сработало для меня. Удаление postmaster.pid в принятом ответе на самом деле было недостаточно.
Абе
4

PSQL вариант

-h имя хоста --host = имя хоста

: Указывает имя хоста компьютера, на котором работает сервер. Если значение начинается с косой черты, оно используется как каталог для сокета домена Unix.

$ grep "port\|unix_socket" /etc/postgresql/9.1/main/postgresql.conf
port = 5433                                         # (change requires restart)
unix_socket_directory = '/var/run/postgresql'       # (change requires resta

$ netstat -nalp | grep postgres
unix  2      [ ACC ]     STREAM     LISTENING     106753   4349/postgres       /tmp/.s.PGSQL.5432
unix  2      [ ACC ]     STREAM     LISTENING     10377 1031/postgres       /var/run/postgresql/.s.PGSQL.5433

Запустите psql с параметром -host

$ psql -p 5433 -h /var/run/postgresql

Не нужно делать мягкую ссылку

Юнона Чу
источник
4

Эта проблема возникла и в MacOS Sierra, и когда мы запустили pg_ctl, как описано выше, у нас возникла следующая ошибка pg_ctl: no database directory specified and environment variable PGDATA unset. Таким образом, мы следовали за шагами здесь, которые решили нашу проблему, а именно:

mkdir ~/.postgres

initdb ~/.postgres

pg_ctl -D ~/.postgres start

Остин
источник
4

Если postgres был установлен с помощью homebrew, это можно исправить, выполнив:

brew link postgres
Cl Local
источник
4

Если вы выключите свою систему, не выходя из psql, postgres не удалил бы некоторые файлы.

Я не нашел файл postmaster.pid в каталоге usr / local / var / postgres

Итак, я сделал следующее:

brew services start postgresql

Приведенная выше команда должна позволить вам запустить postgres

Ashwin
источник
3

Я столкнулся с этой проблемой после попытки восстановить / удалить / создать базу данных, пока другие процессы обращались к ним. Исправление MacOSX / Homebrew было:

  1. закрыть все другие процессы , обращающиеся rails server, rails console, guardи т.д. ...
  2. загрузка / выгрузка с использованием команд, найденных в brew info postgres
  3. запустить восстановление / удаление / создание ранее
TomFuertes
источник
3

FWIW это случилось со мной сегодня, но произошло то, что в то время я запускал обновления Ubuntu, которые, вероятно, обновляли Postgres. После завершения обновления я смог подключиться без помех.

Ради полноты я пытался извлечь записи из базы данных из консоли Rails:

development (main):0 > a = MyModel.find 73694
PG::ConnectionBad: could not connect to server: No such file or directory
        Is the server running locally and accepting
        connections on Unix domain socket "/var/run/postgresql/.s.PGSQL.5432"?
Руи Диаз
источник
3

Похоже, ваш PSQL не работает. Вы должны запустить его до подключения. Вы можете сделать это, используя только Postgres.app для Mac OS. (Загрузите и установите это приложение http://postgresapp.com ) Откройте приложение, и у вас есть сервер PostgreSQL, готовый и ожидающий новых подключений. Закройте приложение, и сервер выключится. Вы также можете найти эту информацию здесь http://www.postgresql.org/download/macosx/ . Надеюсь, что это поможет вам.

lisyk
источник
1
Хотя эта ссылка может ответить на вопрос, лучше включить сюда основные части ответа и предоставить ссылку для справки. Ответы, содержащие только ссылки, могут стать недействительными в случае изменения связанной страницы.
Kmeixner
Вопрос касался, в частности, установки homebrew, а не установки Postgres.app. Хотя этот ответ полезен, он не отвечает на вопрос. Это все равно, что сказать «использовать вместо MySQL».
Брайан Дорогой
3

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

Камара Джаб
источник
3

Для тех, кто использует эту команду и не работает, или файл не существует и использует Ruby on Rails

rm /usr/local/var/postgres/postmaster.pid

Или любую другую команду и просто продолжайте терпеть неудачу.

Я решил эту проблему, удалив с Brew. Мне пришлось удалить brew 2 раза, потому что при первом удалении останется другая версия postgresql, а при втором удалении процесс будет завершен.

Установите postgresql с Brew

Затем сбросьте, создайте и перенесите базы данных проекта

(Не забудьте запустить сервер postgresql)

Эстебан Эчеверри
источник
3

У меня та же проблема, потому что я использую неправильное имя пользователя Postgres в коде. Я вошел в postgres psql -d postgresи вошел, \duчтобы взять имя роли и исправить имя пользователя Postgres.

Поэтому, когда вы, ребята, сталкиваетесь с этой проблемой, вам нужно убедиться, что вы используете правильное имя пользователя Postgres, пароль, имя хоста и базу данных ...

Надеюсь, это поможет кому-нибудь

Brilliant-DucN
источник
3

Recently Вы недавно изменили pg_hba.conf? если вы только что проверили наличие опечаток в:

«local» предназначен только для сокетов Unix

локально все все пароль

Локальные соединения IPv4:

хост все все 127.0.0.1/32 пароль

Локальные соединения IPv6:

хост все все :: 1/128 пароль

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

Серхио Сапата
источник
3

Это происходит, когда сервер postgres не работает. Шаги, чтобы правильно установить Postgres через Homebrew на MAC:

  1. brew install postgres

  2. initdb /Users/<username>/db -E utf8 [Это инициализирует postgres для использования данного каталога в качестве каталога базы данных. Обычно не рекомендуется использовать каталог пользователя для хранения базы данных. Отредактируйте файл sudoers для добавления initdb и аналогичных команд, а затем запустите initdb в / usr / local / var / postgres]

  3. pg_ctl -D /Users/<username>/db -l logfile start [После успешного выполнения шага 2 будет предложено запустить шаг 3. Эта команда запускает сервер вручную.]

Сувик Дас
источник
2

Я получил эту же ошибку. Оказывается, postgres просто не работал вообще (обычно он всегда работает в фоновом режиме, но по какой-то причине это не было сегодня).

Если это так, просто введите postgresв командной строке вашего каталога проекта

Бенджамин Данфи
источник
2

После огромного количества взад и вперед, это действительно сводилось к pgверсии Gem, которую я использовал. На Mavericks pgверсия 0.15.1не будет подключаться к порту 5432, но версия 0.17.1работает просто отлично - очень странно.

Энтони
источник