Postgres не вдалося підключитися до сервера


415

Після того як я зробив оновлення пива та оновлення пивоварення, у моїх 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в своєму додатку рейки, воно показує:

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

3
У мене є ваша точно така ж проблема, але ваше рішення не працювало для мене. Я думаю, що це проблема дозволів, але я не знаю прав доступу до файлів, щоб виправити це.
айбраус

Бо ті, хто встановлює PG через Homebrew і мають проблеми, я знайшов іншу відповідь. Просто видаліть pg gem та перевстановіть за допомогою конфігурацій Homebrew. Дивіться відповідь на сайті stackoverflow.com/a/19609228/1072058 .
zquintana

Аналогічну відповідь тут - stackoverflow.com/questions/13573204 / ...
Velles

1
Почати постгреси.
atw

4
Оновіть існуючу до нової версії за допомогою наступної команди brew postgresql-upgrade-database

Відповіді:


799

Мав подібну проблему; pid-файл блокував постгрес після запуску. Щоб виправити це:

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

і тоді все добре.


4
Це працювало для мене на OSX Mavericks після того, як побачив цю проблему після оновлення / перезавантаження.
eprothro

3
@jstafford спасибі, я вже вирішив! :) Рішення полягало в видаленні через homebew, а потім перезавантаженні комп'ютера відразу, щоб потім я міг перевстановити postgres. Стара версія працювала у фоновому режимі, створюючи файли та конфлікти щоразу, коли я намагався перевстановити постгреси.
betoharres

199
Це не спрацювало для мене на Mavericks:rm: /usr/local/var/postgres/postmaster.pid: No such file or directory
sscirrus

16
Це працювало для мене, після стирання мені довелося почати постгреси. # pg_ctl -D / usr / local / var / postgres -l /usr/local/var/postgres/server.log початок
Рікардо Кастанеда,

12
Рекомендую підключити журнал сервера, щоб переконатися, що це насправді проблема:tail /usr/local/var/postgres/server.log
Josh Bodah

255

Іноді це може бути проблемою з оновленням postgres.

У моєму випадку це сталося при модернізації з 9,3 до 9,4.

Подивитися Http://www.postgresql.org/docs/9.4/static/upgrading.html

OS X / домашня мова:

Спробуйте запустити postgres -D /usr/local/var/postgres - це дасть вам набагато більш багатослівний вихід, якщо постгреси не вдасться запустити.

У моєму випадку біг rm -rf /usr/local/var/postgres && initdb /usr/local/var/postgres -E utf8видалив старі бази даних, а потім повторно ініціалізував схему db postgres.

Завдяки https://github.com/Homebrew/homebrew/isissue/35240 за це рішення.

Після відновлення моїх баз даних (з rake db:create) все знову працювало нормально.


1
Це працювало для мене із встановленою домашньою парою на Yosemite.
cpursley

7
Якщо запущений текст postgres -D /usr/local/var/postgresповідомляє, що каталог даних був ініціалізований зі старшою, несумісною версією Postgres, і ви не хочете втрачати свої локальні дані, ви можете спробувати цю тему
Nathan Long

Після виконання вищевказаної команди я побіг: pg_ctl -D /usr/local/var/postgres -l logfile startі тоді мій сервер запустився на задньому плані
Tommyixi

5
Використовуйте brew services start postgresна OSX для запуску постгресів на фоні замістьpostgres -D /usr/local/var/postgres
Майк Андріанов

1
@coffekid У мене був такий самий випуск, і виправили його з інструкціями тут: stackoverflow.com/questions/24379373/…
Micah Walter

68

Тут ми знайшли рішення, яке працювало для мене:

/dba/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

8
З усіх відповідей це єдиний, хто працював на мене. Використання El Capitan
Patrick_870206

Я спробував з цим cmd, але не працює для мене !!
Harshit Trivedi

41

Якщо встановлення та видалення 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

Джерело


2
Це працює, коли причина відрізняється від прийнятої відповіді, тобто файли бази даних не сумісні з поточною версією. Оскільки саме це було моєю проблемою, я підтримую.
Falk Schuetzenmeister

1
ця команда працює для мене.
Ccr

працює для Mojave 10.14.6
Sgryt87

34

У Yosemite, якщо pid-файл перешкоджає запуску Postgres, і у вас launchctlдемон намагається (і не вдається) завантажити демони бази даних, вам потрібно буде вивантажити файл плісту:

$ 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у вашому database.yml. http://postgresapp.com/documentation#toc_3


Це змінює з'єднання з сокета на TCP-з'єднання, що може мати негативні наслідки. Дивіться stackoverflow.com/questions/6770649/…
Бретт Бім

1
Гм, насправді, якщо ти спровокуєш ... Можливо, не кажи чому? meta.stackoverflow.com/questions/252297/… Або, можливо, сказати чому, але вийдіть спочатку, щоб ви анонімні.
David Winiecki

Я думаю, що голосування проти, тому що оригінальне запитання було не для Postgres.app, а для Homebrew. Тож як відповідь десь може бути корисною, вона не відповідає на питання.
Брайан Шановний

Схоже, посилання не йде десь конкретно (а пошук "localhost" в минулому не має результатів), але це просто вирішило проблему для мене через годину пошуку.
шістдесят4біт

25

Оновлення бази даних працює для мене

brew postgresql-upgrade-database


👍✅⭐️🙏 Дякую Томеру! Це працювало для мене 6/2/20, покращуючи з 9,4 до 12 на macOS Mojave 10.14.6
Роб Беднарк


17

Перевірте, чи існує файл сокета.

$ 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
Гері Лай

29
Нарешті я знаходжу рішення. $ mkdir /var/pgsql_socket/ $ sudo mkdir /var/pgsql_socket/ $ ln -s /private/tmp/.s.PGSQL.5432 /var/pgsql_socket/Це рішення мало хитро, але воно працює. Сподіваюся, у когось буде краще рішення
Gary Lai

приємна робота @GaryLai. Дуже дивно, що мені не довелося робити те саме з моїм домашнім postgresql
jrwren

2
це може допомогти деяким людям там: github.com/mxcl/homebrew/isissue/14527
AdamT

14

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

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

10

Проблема полягає в тому, що на порту 5432 вже працює служба, і ми не можемо встановити з'єднання socket psql через цей порт.

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

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

Потім я повторно реалізував послуги postgres

postgres -D /usr/local/var/postgres

Це працювало для мене.


8

Найбільш дурний спосіб довести це

brew reinstall postgresql

Це дозволить зберегти ваш дозвіл користувача і т. Д. Усі, і все буде відновлено до нового. Працює весь час!


працював як чемпіон !!!! Це все було потрібно.
Акаш К

7

Зміна параметрів конфігурації postresql або database.yml, зміна $ PATH або створення символьних посилань були для мене непотрібними. Все, що мені потрібно було зробити, це було gem uninstall pgі тоді bundle(абоgem install pg ).

Проблема полягала в тому, що дорогоцінний камінь pg був встановлений перед початковим postgres postgres, тому підбирав налаштування з версії postgres, що постачається з MacOS. Перевстановлення його (і тим самим відновлення нативного розширення) вирішило проблему.


Просто хотів сказати спасибі. Я щойно оновив PostgresApp на macOS, і хоча я міг підключитися за допомогою psql, я не зміг підключитися через рейли. видалення та перевстановлення дорогоцінного каміння було лише квитком! :)
craig1410

7

Це сталося зі мною, коли я модернізував з 9.3.4 до 9.5, оскільки бази даних несумісні без оновлення.

Я використовував pg_upgrade так:

Зупиніть постгреси

$ 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

Ці вказівки також є на colleidea.com/blog/archives/2016/01/08/… і досі працювали для мене під час оновлення з 9.4.0 до 9.6.3. Мені не потрібно було нічого робити з .pid-файлом вручну.
Ян Хеттіч

7

Це насправді те, що ви повинні робити:

замість цього слід переглянути /usr/local/var/postgres/postmaster.pid

а потім подивіться перший рядок файлу - це поганий PID

Біжи

ps aux | grep <PID>

наприклад:

ps aux | grep 12345

то зробіть

kill <PID>

наприклад

kill 12345

Якщо припустити, що він все ще працює

/superuser/553045/fatal-lock-file-postmaster-pid-already-exists

не слухайте прийняту відповідь це погано і зіпсує ваші дані !!!


Дякую, це працювало для мене. Видалення postmaster.pid у прийнятій відповіді насправді було недостатньо.
Abe Petrillo

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 Option

$ psql -p 5433 -h /var/run/postgresql

Не потрібно робити м'яке посилання


4

У цій проблемі потрапляв і на MacOS Sierra, і коли ми виконували pg_ctl, як описано вище, тоді у нас виникла наступна помилка pg_ctl: no database directory specified and environment variable PGDATA unset. Таким чином , ми виконали кроки тут , які вирішили нашу проблему, а саме:

mkdir ~/.postgres

initdb ~/.postgres

pg_ctl -D ~/.postgres start


4

Якщо postgres був встановлений за допомогою homebrew, ви можете це виправити, запустивши:

brew link postgres


4

Якщо ви вимкнете вашу систему, не виходячи з psql, postgres не видалив би деякі файли.

Я не знайшов файл postmaster.pid у місцезнаходження usr / local / var / postgres

Тому я зробив наступне:

Пивоварні сервіси починають postgresql

Наведена вище команда повинна дозволяти починати постгреси


3

Я зіткнувся з цією проблемою після спроби відновити / упустити / створити db, поки інші процеси отримували доступ до них. Виправлення MacOSX / Homebrew:

  1. закрити всі інші процеси мають доступ rails server, rails console,guard і т.д. ...
  2. завантажувати / вивантажувати за допомогою команд, знайдених у brew info postgres
  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"?

3

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


1
Хоча це посилання може відповісти на питання, краще включити сюди суттєві частини відповіді та надати посилання для довідки. Відповіді лише на посилання можуть стати недійсними, якщо пов’язана сторінка зміниться.
Кмейкснер

Питання стосувалося конкретно встановлення домашньої програми, а не встановлення Postgres.app. Хоча ця відповідь корисна, вона не відповідає на питання. Це було б так, як сказати "Замість цього використовувати MySQL".
Брайан Шановний,

3

Це тому, що попередній сервер все ще працює, спробуйте закрити все та запустити свою програму.


3

Для тих, хто використовує цю команду, але вона не працює або файл там не використовується і використовується Ruby on Rails

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

Або будь-яка інша команда і просто продовжуйте провалюватися.

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

Встановіть postgresql за допомогою Brew

Потім скидайте, створюйте та мігруйте бази даних проекту

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


3

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

Тож, коли ви, хлопці, стикаєтеся з цією проблемою, вам потрібно переконатися, що ви використовуєте правильне ім’я користувача, пароль, ім’я хоста та базу даних Postgres ...

Сподіваюся, що це допоможе комусь


3

¿Ви нещодавно змінили pg_hba.conf? якщо ви просто перевірили наявність помилки в:

"локальний" призначений лише для підключення сокетів домену Unix

локальний весь весь пароль

Локальні з'єднання IPv4:

розмістити всі 127.0.0.1/32 пароля

Локальні з'єднання IPv6:

хост всі всі :: 1/128 пароль

Іноді проста помилка може доставити нам головний біль. Я сподіваюся, що це допоможе і вибачте, якщо моя англійська мова взагалі не корисна.


3

Це відбувається, коли сервер postgres не працює. Кроки щодо правильної установки Postgres через Homebrew на MAC:

  1. brew install postgres

  2. initdb /Users/<username>/db -E utf8 [Це ініціалізує постгреси, щоб використовувати даний каталог як каталог баз даних. Зазвичай не рекомендується використовувати каталог користувачів для зберігання баз даних. Редагуйте файл sudoers, щоб додати initdb та подібні команди, а потім запустіть initdb у / usr / local / var / postgres]

  3. pg_ctl -D /Users/<username>/db -l logfile start [Після досягнення успіху на кроці 2, він запропонує виконати крок 3. Ця команда вручну запускає сервер.]


2

Я отримав цю саму помилку. Виявляється, postgres просто не працював взагалі (зазвичай він завжди працює у фоновому режимі, але з будь-якої причини цього не було сьогодні).

У такому випадку просто введіть postgresкомандний рядок каталогу проектів


2

Після величезної кількості туди і назад, це дійсно дійшло до pgверсії самоцвіту, яку я використовував. На pgверсії mavericks версія 0.15.1не підключатиметься до порту 5432, але версія 0.17.1працює чудово - дуже дивно.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.