Po tym, jak zrobiłem aktualizację naparu i uaktualnienie naparu, moje postgres miały problem. Próbowałem odinstalować postgres i zainstalować ponownie, ale nie działało to tak dobrze.
To jest komunikat o błędzie (otrzymałem również ten komunikat o błędzie, gdy próbuję wykonać rake db: migracja)
$ 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"?
Jak mogę to rozwiązać?
Wersja Mac: lew górski.
wersja homebrew: 0.9.3
wersja postgres: psql (PostgreSQL) 9.2.1
I to właśnie zrobiłem.
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"?
Teraz, po ponownej instalacji Howbrew, kiedy używam $ psql
, nie wyświetla żadnego komunikatu o błędzie.
Ale działam rake db:migrate
w mojej aplikacji Rails, pokazuje:
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}
Wreszcie znajdę rozwiązanie.
$ sudo mkdir /var/pgsql_socket/
$ sudo ln -s /private/tmp/.s.PGSQL.5432 /var/pgsql_socket/
To rozwiązanie jest trochę trudne, ale działa. Mam nadzieję, że ktoś ma lepsze rozwiązanie
Aktualizacja
To też działa dla mnie.
rm /usr/local/var/postgres/postmaster.pid
ruby-on-rails
database
postgresql
macos
homebrew
Gary Lai
źródło
źródło
brew postgresql-upgrade-database
Odpowiedzi:
Miał podobny problem; plik pid blokował uruchomienie postgres. Naprawić to:
rm /usr/local/var/postgres/postmaster.pid
i wtedy wszystko jest dobrze.
źródło
rm: /usr/local/var/postgres/postmaster.pid: No such file or directory
tail /usr/local/var/postgres/server.log
Czasami może to być problem z aktualizacją postgres.
W moim przypadku stało się to podczas aktualizacji z 9.3 do 9.4.
Zobacz http://www.postgresql.org/docs/9.4/static/upgrading.html
OS X / Homebrew:
Spróbuj uruchomić
postgres -D /usr/local/var/postgres
- da ci dużo więcej danych wyjściowych, jeśli postgres się nie uruchomi.W moim przypadku uruchomiłem
rm -rf /usr/local/var/postgres && initdb /usr/local/var/postgres -E utf8
usunięte moje stare bazy danych, a następnie ponownie zainicjowałem schemat bazy danych postgres.Dzięki https://github.com/Homebrew/homebrew/issues/35240 za to rozwiązanie.
Po zregenerowaniu moich baz danych
rake db:create
wszystko zaczęło działać poprawnie.źródło
postgres -D /usr/local/var/postgres
informuje, że katalog danych został zainicjowany ze starszą, niekompatybilną wersją Postgres i nie chcesz stracić lokalnych danych, możesz spróbować tego wątkupg_ctl -D /usr/local/var/postgres -l logfile start
a potem mój serwer uruchomił się w tlebrew services start postgres
na OSX, aby uruchomić postgres w tle zamiastpostgres -D /usr/local/var/postgres
Tutaj znalazłem rozwiązanie, które dla mnie zadziałało:
/dba/75214/psql-could-not-connect-to-server-no-such-file-or-directory
Zasadniczo uruchamiasz następujące polecenie, aby ręcznie uruchomić serwer:
źródło
Jeśli instalowanie i odinstalowywanie postgres za pomocą brew nie działa, spójrz na dzienniki instalacji postgresql lub:
jeśli widzisz tego rodzaju dane wyjściowe:
Następnie spróbuj wykonać następujące czynności:
Następnie uruchom serwer:
Źródło
źródło
W Yosemite, jeśli plik pid blokuje uruchomienie Postgres i masz
launchctl
demona próbującego (i nie powiodło się) załadować demony bazy danych, musisz zwolnić plik plist:Następnie usuń plik pid
Następnie ponownie załaduj
launchctl
demonaźródło
Dla każdego, kto to czyta i korzysta z Postgres.app, może być potrzebny
host: localhost
w pliku database.yml. http://postgresapp.com/documentation#toc_3źródło
Aktualizacja bazy danych działa dla mnie
brew postgresql-upgrade-database
źródło
pracował dla mnie!
źródło
Sprawdź, czy plik gniazda istnieje.
Jeśli tak się nie stanie, sprawdź, czy w pliku postgresql.conf nie ma zmiany unix_socket_directory.
źródło
$ 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/
To rozwiązanie jest trochę trudne, ale działa. Mam nadzieję, że ktoś ma lepsze rozwiązanieProblem może być również spowodowany zawieszeniem procesu, który pozostawił plik postmaster.pid. Robię to i prace:
źródło
Problem polega na tym, że na porcie 5432 jest już uruchomiona usługa i nie możemy ustanowić połączenia gniazda psql przez ten port.
Usunąłem plik gniazda
Następnie ponownie zainicjowałem usługi postgres
To zadziałało dla mnie.
źródło
Najbardziej głupim dowodem na to jest zrobienie tego
Dzięki temu Twoje uprawnienia użytkownika itp. Pozostaną nienaruszone, a wszystko zostanie zresetowane do nowego. Działa cały czas!
źródło
Zmiana ustawień konfiguracji postresql lub database.yml, zmiana $ PATH lub tworzenie dowiązań symbolicznych były dla mnie niepotrzebne. Wszystko, co musiałem zrobić, to
gem uninstall pg
i wtedybundle
(lubgem install pg
).Problem polegał na tym, że klejnot pg został zainstalowany przed postgres homebrew, podobnie jak pobieranie ustawień z wersji postgres dostarczanej z MacOS. Ponowne zainstalowanie go (a tym samym przebudowanie rozszerzenia natywnego) rozwiązało problem.
źródło
Zdarzyło mi się to podczas aktualizacji z 9.3.4 do 9.5, ponieważ bazy danych są niekompatybilne bez aktualizacji.
Użyłem pg_upgrade w następujący sposób:
Zatrzymaj postgres
Zaktualizuj bazy danych:
Archiwizuj stare bazy danych:
Uruchom ponownie postgres:
Zaktualizowano klejnoty (dla torów / aktywnego zapisu):
źródło
To właśnie powinieneś zrobić:
zamiast tego powinieneś spojrzeć na /usr/local/var/postgres/postmaster.pid
a następnie spójrz na pierwszą linię pliku - jest to zły PID
Biegać
na przykład:
to zrób
na przykład
Zakładając, że nadal działa
/superuser/553045/fatal-lock-file-postmaster-pid-already-exists
nie słuchaj przyjętej odpowiedzi, ponieważ jest zła i spowoduje uszkodzenie Twoich danych !!!
źródło
Opcja Psql
-h nazwa hosta --host = nazwa hosta
: Określa nazwę hosta komputera, na którym działa serwer. Jeśli wartość zaczyna się od ukośnika, jest używana jako katalog dla gniazda domeny uniksowej.
Uruchom psql z opcją -host
Nie trzeba tworzyć miękkiego linku
źródło
Ten problem pojawił się również w systemie MacOS Sierra, a kiedy uruchomiliśmy pg_ctl zgodnie z powyższym opisem, wystąpił następujący błąd
pg_ctl: no database directory specified and environment variable PGDATA unset
. Wykonaliśmy więc kroki , które rozwiązały nasz problem, a mianowicie:mkdir ~/.postgres
initdb ~/.postgres
pg_ctl -D ~/.postgres start
źródło
Jeśli postgres został zainstalowany przy użyciu homebrew, możesz to naprawić, uruchamiając:
źródło
To zadziałało dla mnie (jako połączenie poprzednich odpowiedzi):
Źródło: https://coderwall.com/p/zf-fww/postgres-on-osx-with-homebrew-not-running-after-osx-crash
źródło
Jeśli zamkniesz system bez wychodzenia z psql, postgres nie usunąłby niektórych plików.
Nie znalazłem pliku postmaster.pid w lokalizacji usr / local / var / postgres
Zrobiłem więc poniżej:
Powyższe polecenie powinno umożliwić uruchomienie postgres
źródło
Wystąpił ten problem po próbie przywrócenia / upuszczenia / utworzenia bazy danych, gdy inne procesy uzyskiwały do nich dostęp. Naprawiono MacOSX / Homebrew:
rails server
,rails console
,guard
, itd ...brew info postgres
źródło
FWIW zdarzyło mi się to dzisiaj, ale to, co się stało, polegało na tym, że w tym czasie korzystałem z aktualizacji Ubuntu, które prawdopodobnie aktualizowały Postgres. Po zakończeniu aktualizacji udało mi się połączyć bez żadnych problemów.
Dla kompletności próbowałem pobrać rekordy z bazy danych z konsoli Rails:
źródło
Wygląda na to, że twój psql nie działa. Powinieneś go uruchomić przed połączeniem. Możesz to zrobić tylko za pomocą Postgres.app dla Mac OS. (Pobierz i zainstaluj tę aplikację http://postgresapp.com ) Otwórz aplikację, a masz gotowy serwer PostgreSQL i czeka na nowe połączenia. Zamknij aplikację, a serwer się wyłączy. Te informacje można również znaleźć tutaj http://www.postgresql.org/download/macosx/ . Mam nadzieję, że to ci pomoże.
źródło
Jest tak, ponieważ poprzedni serwer nadal działa, spróbuj zamknąć wszystko i ponownie uruchomić aplikację.
źródło
Dla tych, którzy używają tego polecenia i nie działają lub nie ma tam pliku i używają Ruby on Rails
Lub dowolne inne polecenie i po prostu nie powiodło się.
Rozwiązałem ten problem podczas odinstalowywania za pomocą Brew. Musiałem odinstalować za pomocą brew 2 razy, ponieważ przy pierwszym odinstalowaniu pozostanie inna wersja postgresql, przy drugim odinstalowaniu proces zostanie zakończony.
Zainstaluj postgresql z Brew
Następnie upuść, utwórz i migruj bazy danych projektu
(Nie zapomnij uruchomić serwera Postgresql)
źródło
Mam ten sam problem, ponieważ używam złej nazwy użytkownika Postgres w kodzie. Zalogowałem się do postgres
psql -d postgres
i wchodzę\du
Postgres aby przyjąć nazwę roli i poprawić nazwę użytkownika Postgres.Więc kiedy napotkasz ten problem, musisz upewnić się, że używasz prawidłowej nazwy użytkownika Postgres, hasła, nazwy hosta i bazy danych ...
Mam nadzieję, że to pomoże każdemu
źródło
¿Czy ostatnio zmieniłeś plik pg_hba.conf? jeśli po prostu sprawdziłeś literówkę:
„lokalny” dotyczy tylko połączeń gniazd domeny Unix
lokalne wszystkie wszystkie hasła
Połączenia lokalne IPv4:
hostuj wszystkie hasła 127.0.0.1/32
Połączenia lokalne IPv6:
hostuj wszystko :: 1/128 hasło
Czasami prosty błąd może sprawić nam ból głowy. Mam nadzieję, że ta pomoc i przepraszam, jeśli mój angielski w ogóle nie jest dobry.
źródło
Dzieje się tak, gdy serwer Postgres nie działa. Kroki, aby poprawnie zainstalować Postgres przez Homebrew na MAC:
brew install postgres
initdb /Users/<username>/db -E utf8
[Inicjuje to postgres, aby użyć podanego katalogu jako katalogu bazy danych. Zwykle nie zaleca się używania katalogu użytkownika do przechowywania bazy danych. Edytuj plik sudoers, aby dodać initdb i podobne polecenia, a następnie uruchom initdb na / usr / local / var / postgres]pg_ctl -D /Users/<username>/db -l logfile start
[Po sukcesie w kroku 2 pojawi się monit o uruchomienie kroku 3. To polecenie ręcznie uruchamia serwer.]źródło
Mam ten sam błąd. Okazuje się, że postgres w ogóle nie działał (zwykle zawsze działa w tle, ale z jakiegokolwiek powodu nie był dzisiaj).
W takim przypadku wystarczy wpisać
postgres
w wierszu polecenia katalogu projektuźródło
Po ogromnej ilości tam i z powrotem naprawdę sprowadzało się to do
pg
wersji klejnotu, której używałem. W przypadku komputerów indywidualnychpg
wersja0.15.1
nie łączy się z portem 5432, ale wersja0.17.1
działa dobrze - bardzo dziwnie.źródło