После того, как я сделал 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
ruby-on-rails
database
postgresql
macos
homebrew
Гэри Лай
источник
источник
brew postgresql-upgrade-database
Ответы:
Была похожая проблема; файл pid блокировал запуск postgres. Исправить это:
rm /usr/local/var/postgres/postmaster.pid
и тогда все хорошо.
источник
rm: /usr/local/var/postgres/postmaster.pid: No such file or directory
tail /usr/local/var/postgres/server.log
Иногда это может быть проблемой при обновлении 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
) все снова заработало нормально.источник
postgres -D /usr/local/var/postgres
вам сообщают, что каталог данных был инициализирован более старой несовместимой версией Postgres, и вы не хотите терять свои локальные данные, вы можете попробовать эту темуpg_ctl -D /usr/local/var/postgres -l logfile start
и мой сервер запустился в фоновом режимеbrew services start postgres
на OSX для запуска postgres на фоне вместоpostgres -D /usr/local/var/postgres
Нашел решение, которое работает для меня здесь:
/dba/75214/psql-could-not-connect-to-server-no-such-file-or-directory
Вы запускаете следующую команду, чтобы запустить сервер вручную:
источник
Если установка и удаление postgres с brew вам не помогли, посмотрите журналы вашей установки postgresql или:
если вы видите этот вид вывода:
Затем попробуйте следующее:
Затем запустите сервер:
Источник
источник
В Yosemite, если pid-файл блокирует запуск Postgres, и у вас есть
launchctl
демон, пытающийся (и неуспешно) загружающий демоны базы данных, тогда вам необходимо выгрузить файл plist:Затем удалите файл PID
Затем перезагрузите
launchctl
демонисточник
Для тех, кто читает это и использует Postgres.app, вам может понадобиться
host: localhost
ваш database.yml. http://postgresapp.com/documentation#toc_3источник
Обновление базы данных работает для меня
brew postgresql-upgrade-database
источник
работал на меня!
источник
Убедитесь, что файл сокета существует.
Если это не так, проверьте ваш postgresql.conf на предмет изменения unix_socket_directory.
источник
$ 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
$ mkdir /var/pgsql_socket/
$ sudo mkdir /var/pgsql_socket/
$ ln -s /private/tmp/.s.PGSQL.5432 /var/pgsql_socket/
Это решение немного сложнее, но оно работает. Надеюсь, у кого-нибудь есть лучшее решениеПроблема также может быть связана с аварийным процессом, который оставил файл postmaster.pid. Я делаю это и работаю:
источник
Самый надежный способ обойти это
Это сохранит все ваши права пользователя и т. Д., И все будет сброшено на новый. Работает все время!
источник
rm /usr/local/var/postgres/postmaster.pid
на Mac OS не работал, используйте эту команду.Проблема в том, что на порту 5432 уже запущена служба, и мы не можем установить соединение через сокет psql через этот порт.
Я удалил файл сокета
Затем я переинициализировал сервис Postgres
Это сработало для меня.
источник
Изменение настроек конфигурации postresql или database.yml, изменение $ PATH или создание символических ссылок были для меня ненужными. Все, что мне нужно было сделать, это
gem uninstall pg
и тогдаbundle
(илиgem install pg
).Проблема заключалась в том, что pg gem был установлен до homegrew postgres, поэтому собирал настройки из версии postgres, которая поставляется с MacOS. Переустановка его (и, следовательно, восстановление собственного расширения) устранила проблему.
источник
Это произошло со мной, когда я обновил с 9.3.4 до 9.5, поскольку базы данных несовместимы без обновления.
Я использовал pg_upgrade следующим образом:
Стоп постгрес
Обновите базы данных:
Архивировать старые базы данных:
Перезапустите postgres:
Обновлены самоцветы (для рельсов / активной записи):
источник
На самом деле это то, что вы должны делать:
вместо этого вы должны посмотреть на /usr/local/var/postgres/postmaster.pid
а затем посмотрите на первую строку файла - это плохой PID
Запустить
например:
тогда делай
например
Предполагая, что он все еще работает
/superuser/553045/fatal-lock-file-postmaster-pid-already-exists
не слушайте принятый ответ, это плохо и испортит ваши данные !!!
источник
PSQL вариант
-h имя хоста --host = имя хоста
: Указывает имя хоста компьютера, на котором работает сервер. Если значение начинается с косой черты, оно используется как каталог для сокета домена Unix.
Запустите psql с параметром -host
Не нужно делать мягкую ссылку
источник
Эта проблема возникла и в MacOS Sierra, и когда мы запустили pg_ctl, как описано выше, у нас возникла следующая ошибка
pg_ctl: no database directory specified and environment variable PGDATA unset
. Таким образом, мы следовали за шагами здесь, которые решили нашу проблему, а именно:mkdir ~/.postgres
initdb ~/.postgres
pg_ctl -D ~/.postgres start
источник
Если postgres был установлен с помощью homebrew, это можно исправить, выполнив:
источник
Это сработало для меня (как смесь предыдущих ответов):
Источник: https://coderwall.com/p/zf-fww/postgres-on-osx-with-homebrew-not-running-after-osx-crash
источник
Если вы выключите свою систему, не выходя из psql, postgres не удалил бы некоторые файлы.
Я не нашел файл postmaster.pid в каталоге usr / local / var / postgres
Итак, я сделал следующее:
Приведенная выше команда должна позволить вам запустить postgres
источник
Я столкнулся с этой проблемой после попытки восстановить / удалить / создать базу данных, пока другие процессы обращались к ним. Исправление MacOSX / Homebrew было:
rails server
,rails console
,guard
и т.д. ...brew info postgres
источник
FWIW это случилось со мной сегодня, но произошло то, что в то время я запускал обновления Ubuntu, которые, вероятно, обновляли Postgres. После завершения обновления я смог подключиться без помех.
Ради полноты я пытался извлечь записи из базы данных из консоли Rails:
источник
Похоже, ваш PSQL не работает. Вы должны запустить его до подключения. Вы можете сделать это, используя только Postgres.app для Mac OS. (Загрузите и установите это приложение http://postgresapp.com ) Откройте приложение, и у вас есть сервер PostgreSQL, готовый и ожидающий новых подключений. Закройте приложение, и сервер выключится. Вы также можете найти эту информацию здесь http://www.postgresql.org/download/macosx/ . Надеюсь, что это поможет вам.
источник
Это потому, что предыдущий сервер все еще работает, попробуйте закрыть все и перезапустить приложение.
источник
Для тех, кто использует эту команду и не работает, или файл не существует и использует Ruby on Rails
Или любую другую команду и просто продолжайте терпеть неудачу.
Я решил эту проблему, удалив с Brew. Мне пришлось удалить brew 2 раза, потому что при первом удалении останется другая версия postgresql, а при втором удалении процесс будет завершен.
Установите postgresql с Brew
Затем сбросьте, создайте и перенесите базы данных проекта
(Не забудьте запустить сервер postgresql)
источник
У меня та же проблема, потому что я использую неправильное имя пользователя Postgres в коде. Я вошел в postgres
psql -d postgres
и вошел,\du
чтобы взять имя роли и исправить имя пользователя Postgres.Поэтому, когда вы, ребята, сталкиваетесь с этой проблемой, вам нужно убедиться, что вы используете правильное имя пользователя Postgres, пароль, имя хоста и базу данных ...
Надеюсь, это поможет кому-нибудь
источник
Recently Вы недавно изменили pg_hba.conf? если вы только что проверили наличие опечаток в:
«local» предназначен только для сокетов Unix
локально все все пароль
Локальные соединения IPv4:
хост все все 127.0.0.1/32 пароль
Локальные соединения IPv6:
хост все все :: 1/128 пароль
Иногда простая ошибка может вызвать у нас головную боль. Я надеюсь, что это поможет и извините, если мой английский не очень хорош.
источник
Это происходит, когда сервер postgres не работает. Шаги, чтобы правильно установить Postgres через Homebrew на MAC:
brew install postgres
initdb /Users/<username>/db -E utf8
[Это инициализирует postgres для использования данного каталога в качестве каталога базы данных. Обычно не рекомендуется использовать каталог пользователя для хранения базы данных. Отредактируйте файл sudoers для добавления initdb и аналогичных команд, а затем запустите initdb в / usr / local / var / postgres]pg_ctl -D /Users/<username>/db -l logfile start
[После успешного выполнения шага 2 будет предложено запустить шаг 3. Эта команда запускает сервер вручную.]источник
Я получил эту же ошибку. Оказывается, postgres просто не работал вообще (обычно он всегда работает в фоновом режиме, но по какой-то причине это не было сегодня).
Если это так, просто введите
postgres
в командной строке вашего каталога проектаисточник
После огромного количества взад и вперед, это действительно сводилось к
pg
версии Gem, которую я использовал. На Maverickspg
версия0.15.1
не будет подключаться к порту 5432, но версия0.17.1
работает просто отлично - очень странно.источник