Ответ 1
Попробуйте добавить host: localhost
в ваш database.yml. (Основано на: fooobar.com/questions/13050/...)
Я получаю эту ошибку каждый раз, когда запускаю приложение Rails (он не может подключиться к моему локальному Postgresql)
/Users/leonardo/.rvm/gems/ruby-1.9.3-p362/gems/activerecord-3.2.11/lib/
active_record/connection_adapters/postgresql_adapter.rb:1208:in `initialize':
could not connect to server: No such file or directory (PG::Error)
Is the server running locally and accepting
connections on Unix domain socket "/var/pgsql_socket/.s.PGSQL.5432"?
Я использую Postgres.app, что он правильно работает.
Если я запустил
$ psql
Я могу правильно войти в консоль Postgresql.
$ which psql
/Applications/Postgres.app/Contents/MacOS/bin/psql
Gemfile
source 'https://rubygems.org'
ruby "1.9.3"
gem 'rails', '3.2.11'
gem "pg"
database.yml
development:
adapter: postgresql
encoding: unicode
username: leonardo
password:
database: zapping
port: 5432
Postgresql (консоль)
$ psql
leonardo=# \l
Попробуйте добавить host: localhost
в ваш database.yml. (Основано на: fooobar.com/questions/13050/...)
Ваш драгоценный камень Pg
был скомпилирован против установленного в Mac OS X PostgreSQL libpq, и вы используете psql
, который вы установили в более новой версии, или наоборот.
Это можно обойти, указав соединение TCP/IP, добавив localhost
в database.yml
, но лучше скомпилировать драгоценный камень Pg
против libpq
для сервера, на котором вы фактически работаете. Для этого вы должны установить переменную среды PATH
в папку с правильным pg_config
в ней перед компиляцией. В вашем случае это будет где-то в пределах Postgres.app
.
вы должны добавить host: localhost
в свою конфигурацию db...
Если он не работает даже после добавления host: localhost
, удалите postmaster.pid
rm /usr/local/var/postgres/postmaster.pid
У меня была такая же проблема на Mac. Оказывается, что psql, который у меня был на моем пути, работал некорректно. Попробуйте запустить psql, набрав:
~/projects/some_project/project-rails$ psql
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"?
Если вы видите это, это означает, что двоичный файл psql на вашем пути пытается подключиться с помощью сокета и не может этого сделать (по какой-либо причине). Так как я уже загрузил pgadmin, и он прекрасно соединялся, я знал, что это не проблема с сервером.
Исправлено, добавив правую версию pgsql в мой PATH:
export PATH=/Applications/Postgres.app/Contents/MacOS/bin:$PATH
Теперь psql (и рельсы) счастливы!
find/-name 'postgresql.conf'
netstat -an | grep 5432 # = > /tmp/.s.PGSQL.5432
vi/Пользователи/admin/Library/Приложение\Поддержка/Postgres93/var/postgresql.conf
FROM: unix_socket_directories = '/tmp'
TO: unix_socket_directories = '/var/pgsql_socket'
sudo mkdir/var/pgsql_socket
sudo chmod 777/var/pgsql_socket
У меня была такая же проблема. Вы должны запустить/запустить postgres. Postgres должен был перестать работать на моем компьютере недавно, поэтому мне пришлось убедиться, что он запущен, запустив сервер postgres
postgres -D /usr/local/var/postgres
Затем выполнялись следующие команды (которые вызывали у меня ту же ошибку):
bundle exec rake db:create db:migrate
bundle exec rspec
Для героку это все, что вам нужно.
heroku addons:create heroku-postgresql
production:
adapter: postgresql
encoding: unicode
host: localhost
# For details on connection pooling, see rails configuration guide
# http://guides.rubyonrails.org/configuring.html#database-pooling
pool: 5
У меня была эта проблема. Один из комментариев здесь помог мне исправить эту проблему.
Спасибо, этот ответ помог мне исправить это. Шаги, которые я предпринял, были просты: 1) gem удалить pg, 2) установить пакет, сделать. - haslo Dec 3 '13 в 20:27
gem uninstall pg
bundle install
У меня просто была проблема, что приложение postgres не запускалось на моем mac...