Z powodzeniem zainstalowałem PostgreSQL 9.3 z repozytorium APT na 2 maszynach wirtualnych z systemem Ubuntu 12.04 i 13.04 ... jednak nie mogę go poprawnie zainstalować na moim hoście z systemem Ubuntu 12.04.
Wygląda na to, że instalacja (tym razem) poszła dobrze, ale być może wystąpił błąd, którego nie rozumiem:
* No PostgreSQL clusters exist; see "man pg_createcluster"
Setting up postgresql-9.3 (9.3.0-2.pgdg12.4+1) ...
Creating new cluster 9.3/main ...
config /etc/postgresql/9.3/main
data /var/lib/postgresql/9.3/main
locale en_US.UTF-8
port 5432
update-alternatives: using /usr/share/postgresql/9.3/man/man1/postmaster.1.gz to provide /usr/share/man/man1/postmaster.1.gz (postmaster.1.gz) in auto mode.
Próbuję więc dodać siebie jako użytkownika PostgreSQL, ale otrzymuję to:
createuser: could not connect to database postgres: 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"?
Nie widzę PostgreSQL działającego na monitorze systemu i nie ma pliku w folderze / var / run / postgresql / ... całkowicie pusty.
EDYCJA: na maszynie wirtualnej znajduje się plik w / var / run / postgresql / o nazwie 9.3-main.pid
W pliku dziennika hosta nie ma nic / var / log / postgresql
Więc ... co się tutaj dzieje, co nie dzieje się na mojej maszynie wirtualnej? Tak jak powiedziałem, inne instalacje na maszynie wirtualnej, w tym PostGIS i PGAdmin, były idealne ... nie mam pojęcia, dlaczego ta maszyna hosta nie przechodzi ...
źródło
/var/run/postgresql
katalog? Na pewnym etapie po udanej instalacji brakowało tego folderu na moim komputerze. Co mówi config o tym katalogu, którego powinien używać?postgresql.conf
w katalogu config, który zgodnie z powyższym jest/etc/postgresql/9.3/main
. Powinieneś także zajrzeć do plików dziennika, prawdopodobnie w/var/log/postgresql
.Odpowiedzi:
Moje ustawienia regionalne nie były poprawnie skonfigurowane podczas instalacji PostgreSQL. Czyszczenie i ponowna instalacja nie pomogły. Postępowałem zgodnie z instrukcjami tutaj i to załatwiło sprawę.
Zasadnicze części powiązanych informacji przedstawione poniżej:
Problem pojawił się w następujący sposób:
Pierwszy był bardzo łatwy do rozwiązania, wykonując:
... i wybierając preferowane lokalizacje.
Ale potem PostgreSQL wciąż odmówił uruchomienia. Wynika to z faktu, że proces instalacji próbował utworzyć klaster w czasie instalacji, ale z powodu złych ustawień regionalnych tego nie zrobiono. Musimy więc powtórzyć ten krok, wykonując:
(Dla wersji PostgreSQL 9.3)
Po tym kroku PostgreSQL uruchamia się bezbłędnie przez
źródło
pg_createcluster
mówi, że klaster już istnieje trzeba upuścić go najpierw (Spowoduje to wykasowanie wszystkich danych w nim, więc upewnij się, że masz kopię zapasową)pg_dropcluster 9.3 main
.Mam nadzieję, że już rozwiązałeś ten problem, ale mam podobny problem, który wydaje się mieć inne źródło i być może moje doświadczenie pomoże, jeśli nadal będziesz mieć problem.
Mój problem z Ubuntu w wersji 9.3 dotyczy tego, że katalog gniazda jest katalogiem przejściowym w / run. Zasadniczo skrypt init.d powinien zająć się tworzeniem katalogu gniazda w katalogu / run / postgresql, jeśli nie istnieje on podczas akcji startowej. Tak będzie zawsze po ponownym uruchomieniu komputera.
Problem polega jednak na tym, że skrypt init.d zakończy działanie przed wykonaniem akcji start, jeśli katalog gniazda nie istnieje. Wynika to z tego, że wywołanie pg_lsclusters nie powiedzie się bez katalogu gniazda, co z kolei uniemożliwia akcji uruchomienia utworzenie katalogu gniazda.
Nie zorientowałem się, jakie jest najlepsze rozwiązanie, ale jeśli przeniosę logikę tworzenia katalogu gniazda z akcji startowej do przed wywołaniem pg_lsclusters, będę mógł uruchomić serwer po ponownym uruchomieniu bez problemu.
Oto część akcji startowej, która obsługuje tworzenie katalogu gniazda:
Opublikuję aktualizację, jeśli podstawowa przyczyna tego stanie się dla mnie jasna, ponieważ wyraźnie nie może to być oczekiwane zachowanie.
UZUPEŁNIENIE:
Myślę, że przyczyną tego problemu był brak dobrej wartości skonfigurowanej dla katalogów unix_socket_directories . W wersji 9.2 tą opcją konfiguracji był katalog unix_socket_directory, który usunąłem zamiast przełączania na katalog uni__ocket_directory. Ponieważ ustawiłem wartość dla katalogów unix_socket_directories, nie miałem żadnych problemów z uruchomieniem serwera.
źródło
Miałem kilka problemów z plikiem gniazd, w twoim przypadku /var/run/postgresql/.s.PGSQL.5432
upewnij się, że katalog / var / run / postgresql istnieje i jest zapisywalny przed uruchomieniem postgresql. Aby uzyskać więcej informacji, zobacz tę dyskusję .
również podczas łączenia użyj flagi -h:
i zobacz, czy to rozwiąże problem.
źródło
Wydaje się, że to rozwiązuje problem w Ubuntu:
Edytuj postgresql.conf:
Teraz zrób
service postgresql start
źródło
Jestem nowy w PSQL, ale rozwiązałem problem, edytując start.conf Skomentowałem ustawienie „auto” do ręcznego zarządzania serwerem, ale potrzebuje wartości: auto, manual lub wyłączone.
EGD
źródło
Po mojej stronie skrypt startowy jest niepoprawny. Pliki konfiguracyjne są instalowane w /etc/postgresql/9.3/main, ale skrypt /usr/share/postgresql-common/init.d-functions szuka w
Zamień ten wiersz na
źródło
Wszystko,
po pewnym kopaniu znalazłem (a) rozwiązanie tutaj:
http://ubuntuforums.org/showthread.php?t=869080
Który zawierał te instrukcje:
Uruchom w terminalu:
Teraz mój serwer jest uruchomiony !!!
EDYCJA : po restarcie serwer nadal nie działa ...
Doceniamy wszelkie przemyślenia, dlaczego musiałem to uruchomić!
źródło
/etc/postgresql/9.3/main/postgresql.conf