Ответ 1
Проверьте, нет ли postmaster.pid в вашем каталоге postgres, возможно /usr/local/var/postgres/
удалите это и запустите сервер.
Check - https://github.com/mperham/lunchy - отличная оболочка для launchctll.
Как и некоторые другие, я получаю эту ошибку, когда запускаю rake db: переношу в свой проект или даже пытаюсь выполнить большинство задач базы данных для Ruby on Rails 3.2 приложения.
PGError (не удалось подключиться к серверу: нет такого файла или каталога. сервер, работающий локально, и прием соединений в сокетном домене Unix "/tmp/.s.PGSQL.5432"?
Я установил PostgreSQL с Homebrew давным-давно и после попытки установки MongoDB моя установка PostgreSQL никогда не была такой же. Я запускаю OS X v10.6 Snow Leopard.
Что не так и как лучше понять, как PostgreSQL и должен быть настроен на моем Mac?
До сих пор (я думаю) это говорит мне, что PostgreSQL не работает (?).
ps -aef|grep postgres ([email protected]) (develop) ✗
501 17604 11329 0 0:00.00 ttys001 0:00.00 grep postgres
Но это говорит мне, что PostgreSQL работает?
✪ launchctl load -w /usr/local/Cellar/postgresql/9.1.4/homebrew.mxcl.postgresql.plist (ruby-1.9.2-p136)
homebrew.mxcl.postgresql: Already loaded
Как это исправить? что я не вижу?
PS: ~/Library/LaunchAgents
содержит два файла .plist PostgreSQL. Я не уверен, что это важно.
org.postgresql.postgres.plist
homebrew.mxcl.postgresql.plist
Я попробовал следующее и получил результат, как показано ниже.
$psql -p 5432 -h localhost
psql: could not connect to server: Connection refused
Is the server running on host "localhost" (127.0.0.1) and accepting
TCP/IP connections on port 5432?
could not connect to server: Connection refused
Is the server running on host "localhost" (::1) and accepting
TCP/IP connections on port 5432?
could not connect to server: Connection refused
Is the server running on host "localhost" (fe80::1) and accepting
TCP/IP connections on port 5432?
Я читал, так как это происходит потому, что OS X устанавливает собственную версию PostgreSQL, а Homebrew устанавливает другую версию в другом месте, а команды PostgreSQL ищут в каталоге /tmp/. Вам нужно будет искать больше в Stack Overflow, но в основном вы symlink PostgreSQL, так что все, что ищет в этом пути tmp, действительно находит реальный путь, если это имеет смысл.
Это ссылка, в которой я нашел еще несколько вещей, чтобы попробовать, в частности, делать символическую ссылку в соответствии с выше, Mac OSX Lion Postgres не принимает подключения на /tmp/.s. PGSQL.5432. Я все еще хочу, чтобы кто-то собрал достойное объяснение концепций установки PostgreSQL на OS X и почему все это так сложно.
Последние сведения, помогающие устранить неполадки:
$ which psql // This tells you which PostgreSQL you are using when you run $ psql.
Затем запустите:
$ echo $PATH
Ключевое значение, которое необходимо учитывать, следующее:
Убедитесь, что запись пути для копии PostgreSQL, которую вы хотите запустить COMES, до пути к OS X-системе PostgreSQL.
Это основное требование, которое решает, какой PostgreSQL запускается, и это то, что мне говорят, приводит к большинству этих проблем.
Проверьте, нет ли postmaster.pid в вашем каталоге postgres, возможно /usr/local/var/postgres/
удалите это и запустите сервер.
Check - https://github.com/mperham/lunchy - отличная оболочка для launchctll.
ОБНОВЛЕНИЕ: ЗДЕСЬ ЛУЧШЕ ФИКСИРОВАТЬ, ЕСЛИ ВЫ НА OSX...
Старый ответ:
Вот исправление, больше информации здесь:
https://github.com/mxcl/homebrew/issues/5004
Сначала остановите db, затем
Для меня это работает
rm /usr/local/var/postgres/postmaster.pid
Для вышеупомянутой ошибки вы упомянули, это работает для меня..
1) возможно изменить свой порт по умолчанию, не указанный в файле postgres.conf, если вы упомянули другой, то по умолчанию порт 5432 при установке.
(ИЛИ)
2) Измените порт no в файле postgresql.conf и перезапустите сервер БД
(ИЛИ)
3) вместо полной команды psql типа
"psql -p 5432 -h localhost"
Если вы используете Homebrew, удалите Postgresql end pg gems: *
$ gem uninstall pg
$ brew uninstall postgresql
Загрузите и запустите следующий script, чтобы установить разрешение на /usr/local: * https://gist.github.com/rpavlik/768518
$ ruby fix_homebrew.rb
Затем установите Postgres снова и pg gem: *
$ brew install postgresql
$ initdb /usr/local/var/postgres -E utf8
Чтобы запустить startgresql при запуске входа в систему:
$ ln -sfv /usr/local/opt/postgresql/*.plist ~/Library/LaunchAgents
Или запустите вручную.
Установить pg gem
$ gem install pg
Я надеюсь, что помог
У меня была эта проблема, когда я обновил Postgres до 9.3.x. Быстрое исправление для меня состояло в том, чтобы перейти к той версии 9.2.x, с которой я раньше (нет необходимости устанавливать новую).
$ ls /usr/local/Cellar/postgresql/
9.2.4
9.3.2
$ brew switch postgresql 9.2.4
$ launchctl unload ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist
$ launchctl load ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist
<open a new Terminal tab or window to reload>
$ psql
Этот ответ предлагает гораздо более полное объяснение, а также альтернативные способы устранения проблемы.
Итак, для многих проблем здесь кажется, что люди уже запускали psql и должны были удалить postmaster.pid
. Тем не менее, у меня не было этой проблемы, так как у меня даже не было установленных postgres в моей системе.
Здесь решение, которое работало для меня в MAC OSX Yosemite
export PATH=$PATH:/Applications/Postgres.app/Contents/Versions/latest/bin
Надеюсь, это поможет! Toodles!
Кроме того, этот ответ помог мне больше всего: fooobar.com/questions/12877/...
При запуске: psql -p 5432 -h localhost он не использует драйвер loopback, но использует настоящий сокет, и поэтому вам нужно настроить postgres для приема соединений сокетов. Следовательно, хотя pgadmin и другие клиенты могут работать, psql не будет.
Вам нужно изменить файл postgresql.conf и файлы pg_hba.conf, чтобы разрешить соединение через настоящий сокет. Это также позволит подключиться к удаленному ip, поэтому по умолчанию он отключен.
Эти файлы находятся в каталоге данных, но фактическое местоположение может быть различным в зависимости от того, как были установлены postgres. При запуске postgres запустите команду:
ps -ef | grep postmaster
Эти два файла - это каталог -D (возможно,/usr/local/pgsql/data).
Для файла postgresql.conf раскомментируйте файл listen_address и измените его как:
listen_address = '*'
Для pg_hba.conf добавьте строку:
host all all 0.0.0.0/0 md5
Я не знаю Mac или Homebrew, но я хорошо знаю PostgreSQL.
Вы хотите выяснить, откуда идут журналы из PostgreSQL, и что каталог сокетов для PostgreSQL. По умолчанию при создании PG каталог сокетов -/tmp/. Если вы не изменили это, когда вы создали PG, а затем вы начали PG, вы должны увидеть файл сокета в /tmp, если вы это сделаете: ls -al/tmp
Файл сокета начинается с ".", поэтому вы не увидите его с помощью "-a" на ls.
Если вы не видите там сокет, и вы ничего не видите от ps awux | grep postgres, то PG, вероятно, не работает, или, может быть, и есть OSX-установленный. Что может случиться, так это то, что вы можете столкнуться с конфликтом при прослушивании на порту 5432 на localhost-use netstat -anp, чтобы узнать, что, если угодно, прослушивает 5432. Если Mac OSX PG уже прослушивает этот порт, это может быть проблемой.
Надеюсь, что это поможет. Я слышал, что доморощенный может сделать вещи немного уродливыми и много людей, которых я говорил, чтобы поощрять использование виртуальной машины вместо этого.
Причина
Lion поставляется с уже установленной версией postgres и по умолчанию использует эти двоичные файлы. В общем, вы можете обойти это, используя полный путь к двоичным файлам postgres homebrew, но могут быть проблемы с другими программами.
Решение
curl http://nextmarvel.net/blog/downloads/fixBrewLionPostgres.sh | ш
Через
http://nextmarvel.net/blog/2011/09/brew-install-postgresql-on-os-x-lion/
Привет, мир:)
Лучшим, но странным для меня способом было сделать следующее.
1) Загрузите postgres93.app или другую версию. Добавьте это приложение в папку /Applications/.
2) Добавьте строку (команду) в файл .bash_profile
(который находится в моем домашнем каталоге):
export PATH=/Applications/Postgres93.app/Contents/MacOS/bin/:$PATHЭто значение PATH для
psql
из Postgres93.app
. Строка (команда) запускается каждый раз при запуске консоли.
3) Запустите папку Postgres93.app
из /Applications/
. Он запускает локальный сервер (порт "5432", а хост - "localhost" ).
4) После всех этих манипуляций я был рад запустить $ createuser -SRDP user_name
и другие команды и убедиться, что он сработает! Postgres93.app
можно запускать при каждом запуске системы.
5) Также, если вы хотите графически увидеть свои базы данных, вы должны установить PG Commander.app
. Это хороший способ увидеть вашу базу данных postgres как симпатичные таблицы данных.
Конечно, это полезно только для локального сервера. Я буду рад, если эта инструкция поможет другим, кто столкнулся с этой проблемой.
У меня был PostgreSQL 9.3 и получил ту же ошибку,
Не удалось подключиться к серверу: соединение отклонено. Сервер работает. на хосте "localhost" (127.0.0.1) и принимать соединения TCP/IP на порт 5432?
Я исправил это, используя:
chmod 777 /var/lib/pgsql/9.3/data/pg_hba.conf
service postgresql-9.3 restart
Это работает для меня.
для чего это стоит, я испытал ту же ошибку, когда у меня была опечатка (md4
вместо md5
) в моем pg_hba.conf
файле (/etc/postgresql/9.5/main/pg_hba.conf
)
Если вы пришли сюда, как я, дважды проверьте этот файл, чтобы убедиться, что там нет ничего смешного.
Я исправил это, обновив postgres.
brew update
brew upgrade
Затем мне также пришлось обновить базы данных, чтобы они были совместимы с новой основной версией, потому что я обновил с 10 до 11.
brew postgresql-upgrade-database
(источник https://github.com/facebook/react-native/issues/18760#issuecomment-410533581)
Одна из причин, по которой вы получаете эту ошибку, заключается в том, что ваша локальная база данных postgres отключается при перезагрузке компьютера. В новом окне терминала просто введите:
$psql -h localhost
чтобы перезагрузить сервер.
При запуске PostgreSQL могут возникать различные проблемы. Я бы рекомендовал очистить все версии postgres и начать новый. После того, как вы его установили, очень легко воссоздать свою базу данных, если у вас есть проект рельсов с обновленным db/schema.rb
Вот как обычно установить PostgreSQL на Mac. Если вы используете локальную базу данных под локальным пользователем root, вы можете опустить последний шаг, создающий пользователя todo
Одна из причин может заключаться в том, что
unix_socket_directories в файле postgresql.conf не указан в каталоге, который он ищет.
В примере вопроса он ищет каталог /tmp, который должен быть указан в файле postgresql.conf.
что-то вроде этого:
unix_socket_directories = '/var/run/postgresql,/tmp' # comma-separated list of directories
Это решение сработало для меня.
Если вы находитесь на MacOS и используете доморощенный, я нашел этот ответ чрезвычайно полезным:
fooobar.com/questions/12671/...
Для меня мой сервер работал, но из-за обновления у меня возникли проблемы с подключением (обратите внимание: я пользуюсь услугами brew). Если Postgres запущен, попробуйте cat /usr/local/var/postgres/server.log
и посмотрите, что говорят журналы. Моя ошибка была миграцией, а не проблемой подключения.
Также после ручной миграции, которую они предлагают (что работает, но), я обнаружил, что для моего пользователя больше нет таблицы. Попробуйте эту команду, чтобы исправить это: createdb
(ответил через psql: FATAL: database "<user> " не существует)
Это очень просто. Добавляйте хост в свой файл database.yaml.