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

316

После обновления brew и обновления brew мои 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: Горный лев.

homebrew версия: 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
  • 2
    У меня точно такая же проблема, но ваше решение у меня не сработало. Я думаю, что это проблема с разрешениями, но у меня нет знаний о правах доступа к файлам, чтобы это исправить.
  • 0
    Для тех, кто устанавливает PG через Homebrew и возникают проблемы, я нашел другой ответ. Просто удалите pg gem и переустановите с помощью настроек Homebrew. Смотрите ответ на stackoverflow.com/a/19609228/1072058 .
Показать ещё 2 комментария
Теги:
macos
homebrew
osx

37 ответов

647
Лучший ответ

Была аналогичная проблема; файл pid блокировал postgres от запуска. Чтобы исправить это:

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

а затем все хорошо.

  • 4
    Это работало для меня на OSX Mavericks после просмотра этой проблемы при обновлении / перезапуске.
  • 1
    Спасибо, это сработало и для меня. Мой PostgreSQL от Homebrew сломался после того, как я сделал небольшое обновление Maverick до 10.9.2, возможно, это был просто метод очистки старого файла .pid.
Показать ещё 17 комментариев
196

Иногда это может быть проблемой при обновлении 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 удалил мои старые базы данных и затем повторно инициализировал схему dg postgres.

Благодаря https://github.com/Homebrew/homebrew/issues/35240 для этого решения.

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

  • 1
    Это сработало для меня, когда на Yosemite был установлен доморощенный постгрес.
  • 7
    Если при запуске postgres -D /usr/local/var/postgres сообщается, что каталог данных был инициализирован более старой несовместимой версией Postgres, и вы не хотите терять свои локальные данные, вы можете попробовать эту тему
Показать ещё 8 комментариев
58

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

https://dba.stackexchange.com/questions/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
  • 7
    Из всех ответов это единственный, который работал на меня. Использование El Capitan
30

В 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 в вашей базе данных .yml. http://postgresapp.com/documentation#toc_3

  • 0
    Это меняет соединение с сокета на соединение TCP, что может иметь негативные последствия. См. Stackoverflow.com/questions/6770649/…
  • 1
    Хм, вообще-то, если ты понизишь голос ... Может, не скажешь почему? meta.stackoverflow.com/questions/252297/… Или, может быть, скажите почему, но сначала выйдите из системы, чтобы быть анонимным.
Показать ещё 3 комментария
25

Если установка и удаление 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

Источник

  • 0
    Это работает, когда причина отличается от принятого ответа, то есть файлы базы данных не совместимы с текущей версией. Так как именно это было моей проблемой, я приветствую.
16
brew services start postgres 

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

  • 0
    работал на меня!
14

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

$ 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
  • 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
  • 28
    Наконец-то я нахожу решение. $ mkdir /var/pgsql_socket/ $ sudo mkdir /var/pgsql_socket/ $ ln -s /private/tmp/.s.PGSQL.5432 /var/pgsql_socket/ Это решение немного сложное, но оно работает. Надеюсь, у кого-нибудь есть лучшее решение
Показать ещё 2 комментария
8

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

brew postgresql-upgrade-database

  • 0
    Это работает для меня и было значительно менее грязно.
  • 0
    Это сработало для меня.
7

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

$ brew services stop postgresql
$ rm /usr/local/var/postgres/postmaster.pid # adjust path accordingly to your install
$ brew services start postgresql
7

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

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

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

Запустить

ps aux | grep <PID>

например:

ps aux | grep 12345

то do

kill <PID>

например

kill 12345

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

https://superuser.com/questions/553045/fatal-lock-file-postmaster-pid-already-exists

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

  • 0
    Спасибо, это сработало для меня. Удаление postmaster.pid в принятом ответе на самом деле было недостаточно.
7

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

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

Стоп postgres

$ 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
6

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

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

  • 0
    Просто хотел сказать спасибо. Я только что обновил PostgresApp на macOS, и хотя я мог подключиться с помощью psql, я не смог подключиться через rails. удаление и переустановка pg gem - это просто билет! :)
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

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

3

Ни одно из вышеперечисленных решений не помогло мне.

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

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

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

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

postgres -D /usr/local/var/postgres

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

3

Это сработало для меня (как смесь предыдущих ответов):

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

$ pg_ctl -D /usr/local/var/postgres -l /usr/local/var/postgres/server.log start

Источник: https://coderwall.com/p/zf-fww/postgres-on-osx-with-homebrew-not-running-after-osx-crash

3

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

brew link postgres
3

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

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

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

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

Установите postgresql с помощью Brew

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

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

3

Самый надежный способ избежать этого - сделать

brew reinstall postgresql

Это сохранит ваше разрешение пользователя и т.д. все неповрежденное и все будет reset для нового. Работает все время!

3

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

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

Это происходит, когда сервер 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

¿Недавно вы изменили pg_hba.conf? если вы только что отметили любую опечатку:

"local" предназначен только для соединений сокета домена Unix

local all all password

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

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

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

host all all:: пароль 1/128

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

2

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

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

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

2

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

mkdir ~/.postgres

initdb ~/.postgres

pg_ctl -D ~/.postgres start

2

Для меня это было обновление Apache, вызвавшее эту проблему. Я все еще могу запустить psql в консоли или вызвать db непосредственно из kdevelop. Также он работал над добавлением "host = localhost" в строку подключения.

НО реальная проблема заключалась в том, что apache изменился на private tmp.

Решение: Обновить /usr/lib/systemd/system/apache 2.service и изменить PrivateTmp = true для PrivateTmp = false.

Я работаю над ОС OpenSuse, но думаю, что что-то подобное может произойти на Mac.

2

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

  • 1
    Хотя эта ссылка может ответить на вопрос, лучше включить сюда основные части ответа и предоставить ссылку для справки. Ответы, содержащие только ссылки, могут стать недействительными в случае изменения связанной страницы.
  • 1
    Спасибо за совет
Показать ещё 1 комментарий
2

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

2

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

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

2

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

  • закрыть все другие процессы доступа rails server, rails console, guard и т.д.
  • загрузить/выгрузить с помощью команд, найденных в brew info postgres
  • запустить восстановление/удаление/создать из
0

Локально, если вы используете brew

! ВАЖНО это сотрет все ваши базы данных

brew services stop postgresql

brew reinstall postgresql

brew services start postgresql

и тогда вам нужно будет снова создать базу данных

0

Одной из причин будет необходимость убедиться, что размер диска не заполнен, выполнить команду postmaster -D path of postgres

0

Если вы столкнулись с проблемой при обновлении Postgres (или после обновления), следуйте приведенным здесь шагам, чтобы безопасно передавать данные между версиями, что решит проблему:

Обновление PostgreSQL с 9.6.5 по 10.0 с использованием Homebrew (macOS)

0

Каталог данных содержит старый файл postmaster.pid/Каталог данных содержит нечитаемый файл postmaster.pid PostgreSQL помещает файл с именем postmaster.pid в каталог данных для хранения идентификатора процесса сервера PostgreSQL. Если PostgreSQL выходит из строя, этот файл может содержать старый pid, который смущает PostgreSQL. Вы можете исправить эту проблему, удалив файл postmaster.pid. Однако вы должны убедиться, что PostgreSQL действительно не работает. Откройте Activity Monitor и убедитесь, что нет процессов с именем postgres или postmaster.

Если вы удалите файл postmaster.pid во время работы PostgreSQL, произойдут плохие вещи.

Источник: https://postgresapp.com/documentation/troubleshooting.html

0

Я использовал стек Bitnami и был установлен как пользователь root psql без полномочий root. При использовании psql я получил указанную ошибку.

Оказывается, существуют 2 версии psql

  • корневой уровень psql, предварительно упакованный в дистрибутив linux. Это указывает на /usr/bin/psql
  • psql без корневого уровня, установленный стеком Bitnami. Это указывает на /bitnami/postgresql/postgresql/bin/psql

Возможно, вы захотите изменить псевдоним psql, чтобы он указывал на пользователя без полномочий root.

alias psql='/bitnami/postgresql/postgresql/bin/psql'

Выше работала для меня при выполнении psql -U postgres

0

Всего два шага для запуска базы данных после установки (до этого убедитесь, что вы вошли в систему как пользователь postgres)

Установленный-Dirs/bin/postmaster -D Установленный-Dirs/pgsql/data​​h1 >

Пример:

[postgres@localhost bin]$ /usr/local/pgsql/bin/postmaster -D /usr/local/pgsql/data

Шаг-2: Запустите psql из установленного пути (чтобы проверить, где вы установили '#which postgres' будет использовать, чтобы узнать установленное местоположение)

[postgres@localhost bin]$ psql 
0

Причина

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

Решение

curl http://nextmarvel.net/blog/downloads/fixBrewLionPostgres.sh | sh

Через

http://nextmarvel.net/blog/2011/09/brew-install-postgresql-on-os-x-lion/

Ещё вопросы

Сообщество Overcoder
Наверх
Меню