Я недавно обновился до OSX 10.7, после чего моя установка rails полностью прервалась при попытке подключиться к серверу psql. Когда я делаю это из командной строки, используя
psql -U postgres
он работает совершенно нормально, но когда я пытаюсь запустить сервер или консоль rails с тем же именем пользователя и паролем, я получаю эту ошибку
...activerecord-3.0.9/lib/active_record/connection_adapters/postgresql_adapter.rb:950:in `initialize': could not connect to server: Permission denied (PGError)
Is the server running locally and accepting
connections on Unix domain socket "/var/pgsql_socket/.s.PGSQL.5432"?
Любые идеи, которые могут произойти, будут очень полезными! Спасибо!
Ответы:
Это проблема ПУТИ. Mac OSX Lion теперь включает в систему Postgresql. Если вы сделаете,
which psql
вы, скорее всего, увидите,usr/bin/psql
вместо того,usr/local/bin/psql
который является правильным для HomeBrew. Если вы запускаете,brew doctor
вы должны получить сообщение о том, что вам нужно добавитьusr/local/bin
в заголовок переменной PATH env.Отредактируйте ваш .bash_profile или .profile или любую используемую вами оболочку и добавьте:
export PATH=/usr/local/bin:$PATH
в качестве первого экспорта для
PATH
затем либо завершите сеанс оболочки, либо отправьте исходный файл,source ~/.bash_profile
и теперь все должно быть снова в порядке.источник
Для тех из вас, кто заинтересован, я собрал решение. Все что мне нужно было добавить
в database.yml для моей среды, и все было подливкой.
источник
У меня была эта проблема с Горным Львом, но единственное, что сработало для меня, это исправление :
Проверьте, где фактическая цель:
Мне нужно было создать этот каталог:
Затем, используя результат из поиска выше, создайте эту символическую ссылку:
Я подозреваю, что для большинства людей в Mountain Lion вы можете просто создать каталог и создать символическую ссылку, а не тратить время на поиск, если только символическая ссылка не работает.
PS - мой PostgreSQL был установлен через официальный установщик.
источник
Если проблема не устраняется после изменения пути (как это было для меня), также попробуйте это ...
Похоже, что проблема (частично) заключается в самом геме pg. Когда он собирается, он выясняет, где должен находиться сокет домена. Если вы измените расположение доменного сокета после факта, он, кажется, не вступит в силу, пока вы не перестроите драгоценный камень.
источник
Для тех, кто установил напрямую из официального установщика, простое добавление хоста в команду работает без изменений пути:
источник
У меня была та же проблема, и у меня были проблемы с работой решения Джона Вана. Как заметил Даррен, есть проблема с гемом pg. Чтобы это заработало, мне нужно было:
Затем переустановите.
Который получил это работает.
источник
Я тоже столкнулся с этим, но сам установил postgres (не с homebrew). Если это так, вам нужно найти старый путь к psql (который может быть / usr / local / bin, но для меня это был / usr / local / pgsql / bin) и добавить его к вашему $ PATH.
(до)
which psql
=> / usr / bin / psql(исправить) экспорт PATH = / usr / local / psql / bin: $ PATH
(после) `which psql '=> / usr / local / psql / bin
Предложение Джона Вана
source ~/.bash_rc
добавить в свой bash_rc что-то золотое.источник
Это для доморощенного? Порты, кажется, помещают это в:
Поэтому убедитесь, что вы используете экспорт
Проблема с портами Mac: https://trac.macports.org/ticket/30125
источник
Меня не устраивают ответы с наибольшим количеством голосов, так как они либо зависят от конкретного пользователя ОС, либо переназначают Postgres для использования TCP вместо доменных сокетов, на что указывает @pilif. Я видел другое решение, которое включает в себя изменение порядка путей по умолчанию на системном уровне для проверки пути Brew перед основным системным путем, но это кажется опасным, поскольку это может повлиять на все другие конфликты имен приложений, подобные этой.
На этом сайте подробно описано решение, найденное моим коллегой. Все сводится к выполнению одного сценария оболочки, который будет
Это связано с предупреждением о том, что система Postgres по умолчанию - это то, что установил brew, поэтому вам нужно сделать вывод о том, подходит ли это вам. Я не вижу, что мне нужен Postgres 8.4 специально для 9.x, но YMMV
источник
Другое возможное решение, которое сработало для меня, - сброс файла postmaster путем его удаления. Просто запустите:
Стоит проверить журнал на наличие ошибок, которые вы можете найти здесь:
У меня было сообщение об ошибке:
После этого все работало отлично.
источник
В моем случае сервер не запускался из-за неправильных настроек общей памяти. Сначала я был смущен, потому что было запущено несколько процессов postgres, но это были стандартные системные процессы. Ищите
postmaster
процессы!Все, что мне нужно было сделать, это изменить настройки общей памяти . В моем случае не нужно было возиться с настройками пути.
источник
Вам может потребоваться указать хост вашей базы данных.
источник
Если вам нравится постоянное изменение в вашем $ PATH, попробуйте это:
это перепишет ваше
~/.MacOSX/environment.plist
.источник
Я новичок в Rails, но добавление следующего в database.yml сработало для меня:
Не уверен, почему Rails по умолчанию использует доменные сокеты вместо TCP, в то время как PostgreSQL не устанавливает доменные сокеты по умолчанию.
источник
Мой PostgreSQL установлен в / Library / PostgreSQL, так что / usr / var не работает для меня.
Кажется, что Woz прав, потому что каждый раз, когда я закрываю крышку моего MacBook Pro, он падает ... Вот что сработало для меня после аварии:
источник