macos - verzeichnis - ubuntu postgresql port




Wie starte ich den PostgreSQL Server unter Mac OS X? (13)

Letzter UPDATE:

Ich hatte vergessen, den Befehl initdb auszuführen.

</ Letztes Update>

indem Sie diesen Befehl ausführen

ps auxwww | grep postgres

Ich sehe, dass Postgres nicht läuft

> ps auxwww | grep postgres
remcat          1789   0.0  0.0  2434892    480 s000  R+   11:28PM   0:00.00 grep postgres

Das wirft die Frage auf: Wie starte ich den Postgresql-Server?

aktualisieren:

>pg_ctl -D /usr/local/var/postgres -l /usr/local/var/postgres/server.log start
server starting
sh: /usr/local/var/postgres/server.log: No such file or directory

Update 2:

Die Berührung war nicht erfolgreich, also tat ich das stattdessen:

> mkdir /usr/local/var/postgres
> vi /usr/local/var/postgres/server.log
> ls /usr/local/var/postgres/          
server.log

Aber wenn ich versuche, den Rails Server zu starten, sehe ich immer noch folgendes:

Is the server running on host "localhost" and accepting
TCP/IP connections on port 5432?

Update 3:

> pg_ctl -D /usr/local/var/postgres status
pg_ctl: no server running

Update 4:

Ich fand, dass es keine pg_hba.conf (nur pg_hba.conf.sample) gab, also änderte ich die Probe und benannte sie um (um die .sample zu entfernen). Hier sind die Inhalte:

 # IPv4 local connections:
 host    all             all             127.0.0.1/32           trust
 # IPv6 local connections:
 host    all             all             ::1/128                trust

aber ich verstehe das nicht:

> pg_ctl -D /usr/local/var/postgres -l /usr/local/var/postgres/server.log start     
server starting
> pg_ctl -D /usr/local/var/postgres status                                     
pg_ctl: no server running

ebenfalls:

sudo find / -name postgresql.conf
find: /dev/fd/3: Not a directory
find: /dev/fd/4: Not a directory

Update 5:

sudo pg_ctl -D /usr/local/var/postgres -l /usr/local/var/postgres/server.log start
Password:
pg_ctl: cannot be run as root
Please log in (using, e.g., "su") as the (unprivileged) user that will own the server process.

Update 6:

das scheint merkwürdig:

> egrep 'listen|port' /usr/local/var/postgres/postgresql.conf
egrep: /usr/local/var/postgres/postgresql.conf: No such file or directory

obwohl ich das getan habe:

>sudo find / -name "*postgresql.conf*"
find: /dev/fd/3: Not a directory
find: /dev/fd/4: Not a directory
/usr/local/Cellar/postgresql/9.0.4/share/postgresql/postgresql.conf.sample
/usr/share/postgresql/postgresql.conf.sample

also habe ich das getan:

egrep 'listen|port' /usr/local/Cellar/postgresql/9.0.4/share/postgresql/postgresql.conf.sample 
#listen_addresses = 'localhost'     # what IP address(es) to listen on;
#port = 5432                # (change requires restart)
                # supported by the operating system:
                #   %r = remote host and port

Also habe ich Folgendes versucht:

> cp /usr/local/Cellar/postgresql/9.0.4/share/postgresql/postgresql.conf.sample /usr/local/Cellar/postgresql/9.0.4/share/postgresql/postgresql.conf        
> cp /usr/share/postgresql/postgresql.conf.sample /usr/share/postgresql/postgresql.conf 

immer noch dasselbe "Läuft der Server?" Botschaft.


Der Homebrew Paket-Manager enthält launchctl plists, um automatisch zu starten. Für weitere Informationen brew info postgres .

Manuell starten:

pg_ctl -D /usr/local/var/postgres start

Stoppen Sie manuell:

pg_ctl -D /usr/local/var/postgres stop

Automatisch starten:

"Um launchd zu starten, starte jetzt postgresql und starte bei der Anmeldung neu:"

brew services start postgresql

Was ist das Ergebnis von pg_ctl -D /usr/local/var/postgres -l /usr/local/var/postgres/server.log start ?

Was ist das Ergebnis des pg_ctl -D /usr/local/var/postgres status ?

Gibt es Fehlermeldungen in der Datei server.log?

Stellen Sie sicher, dass tcp localhost-Verbindungen in pg_hba.conf aktiviert sind:

# IPv4 local connections:
host    all             all             127.0.0.1/32            trust

Überprüfen Sie die listen_addresses und den Port in postgresql.conf:

egrep 'listen|port' /usr/local/var/postgres/postgresql.conf

#listen_addresses = 'localhost'     # what IP address(es) to listen on;
#port = 5432                # (change requires restart)

Aufräumen

Postgres wurde höchstwahrscheinlich über Homebrew , Fink , MacPorts oder das EnterpriseDB Installationsprogramm installiert.

Überprüfen Sie die Ausgabe der folgenden Befehle, um festzustellen, mit welchem ​​Paketmanager sie installiert wurde:

brew && brew list|grep postgres
fink && fink list|grep postgres
port && port installed|grep postgres

Der sauberste Weg um postgres zu starten / stoppen / neu zu starten, wenn Sie es über brew installiert haben, ist einfach die launchd Konfigurationsdatei, die mit der Installation geliefert wird, zu entladen und / oder zu laden:

launchctl unload ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist
launchctl load ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist

Die erste Zeile stoppt postgres und die zweite Zeile startet sie. Sie müssen keine Datenverzeichnisse usw. angeben, da sich alles in dieser Datei befindet.


Für Entwicklungszwecke ist eine der einfachsten Möglichkeiten, Postgres.app von der offiziellen Website zu installieren. Es kann aus dem Ordner Programme gestartet oder gestoppt werden oder mit den folgenden Befehlen im Terminal:

# start
open -a Postgres

# stop
killall Postgres
killall postgres

Für Mac / OSX mag ich LaunchRocket für diesen und andere Hintergrunddienste, die ich in der Entwicklung verwendet habe.

https://github.com/jimbojsb/launchrocket

Diese Seite hat schöne Anweisungen zur Installation: http://macappstore.org/launchrocket/

Dies gibt Ihnen einen schönen Bildschirm in Ihren Systemeinstellungen, der es Ihnen ermöglicht, bei der Anmeldung zu starten, neu zu starten, zu rooten und zu starten.


Hier meine 2 Cent: Ich habe einen Alias ​​für Postgreads pg_ctl erstellt und in .bash_profile eingetragen (meine postgresql-Version ist 9.2.4 und der Datenbankpfad ist /Library/PostgreSQL/9.2/data).

alias postgres.server="sudo -u postgres pg_ctl -D /Library/PostgreSQL/9.2/data"

Neues Terminal starten

Und dann? Sie können Ihren PostgreSQL-Server damit starten / stoppen:

postgres.server start
postgres.server stop

Ich habe das gleiche Problem und führe alle Updates vom ersten Post durch. Aber nach der Prüfprotokolldatei:

/usr/local/var/postgres/server.log

Ich sehe wahre Ursache:

FATAL:  data directory "/usr/local/var/postgres" has group or world access
DETAIL:  Permissions should be u=rwx (0700).

Nach Änderung der Berechtigung für dieses Verzeichnis

chmod 0700 /usr/local/var/postgres

Postgres-Server hat gestartet.

Jedes Mal überprüfen Sie die Protokolldatei.


Keine der obigen Antworten behebt das Problem für mich trotz der gleichen Fehlermeldungen. Ich konnte meine Instanz wiederherstellen, indem ich die vorhandene Datei postmaster.pid löschte, die gesperrt war und keine Verbindungen zuließ.


PostgreSQL ist in Server.app integriert, das über den App Store in Mountain Lion erhältlich ist. Das bedeutet, dass es bereits konfiguriert ist und Sie es nur starten müssen, und erstellen Sie dann Benutzer und Datenbanken.

Tipp : Beginnen Sie nicht mit der Definition von $ PGDATA usw., nehmen Sie die Dateipositionen so, wie sie sind.

Sie hätten diese Datei: /Library/Server/PostgreSQL/Config/org.postgresql.postgres.plist

Anfangen:

sudo serveradmin start postgres

Der Prozess wurde mit Argumenten gestartet:

/Applications/Server.app/Contents/ServerRoot/usr/bin/postgres_real -D / Library / Server / PostgreSQL / Daten -c listen_addresses = 127.0.0.1, :: 1 -c log_connections = on -c log_directory = / Library / Logs / PostgreSQL -c Protokolldateiname = PostgreSQL.log -c Protokoll_Zeile_Prefix =% t -c Protokollsperre_auf = on -c Protokoll_Anweisung = ddl -c Protokollierung_Kollektor = Ein -c Unix_Socket_Verzeichnis = / privat / var / pgsql_socket -c unix_socket_gruppe = _postgres -c unix_socket_permissions = 0770

Sie können sudo:

sudo -u _postgres psql template1

Oder verbinden:

psql -h localhost -U _postgres postgres

Sie können das Datenverzeichnis, die Version, den Ausführungsstatus usw. finden

sudo serveradmin fullstatus postgres  

Variation zu dieser Antwort: https://.com/a/13103603/2394728

initdb `brew --prefix`/var/postgres/data -E utf8`

Wenn Sie Postgresql mit Homebrew installieren:

brew install postgres

Am Ende der Ausgabe sehen Sie diese Methode um den Server zu starten:

To have launchd start postgresql at login:
    ln -sfv /usr/local/opt/postgresql/*.plist ~/Library/LaunchAgents
Then to load postgresql now:
    launchctl load ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist
Or, if you don't want/need launchctl, you can just run:
    postgres -D /usr/local/var/postgres

Ich denke, das ist der beste Weg.

Sie können Alias ​​zur Vereinfachung in Ihre .profile-Datei einfügen.


Zu Testzwecken denke ich, PostgreSQL App ist die beste Option!

Führen Sie eine App aus, und der Server ist betriebsbereit. Schließen Sie die App und der Server geht aus.

http://postgresapp.com/


$ brew upgrade postgres

reparierte es für mich.

Das wird natürlich Ihre Postgres-Version aktualisieren und alle Abhängigkeiten aktualisieren / installieren. WARNUNG: Wissen Sie, dass sich Ihre postgresql-Version wahrscheinlich ändert. Für mich war das keine große Sache.


   # remove old database files (If there was any)
   $rm -rf /usr/local/var/postgres    # install the binary

    $ brew install postgresql

    # init it
    $ initdb /usr/local/var/postgres

    # start the postgres server
    $ postgres -D /usr/local/var/postgres

    # create your database
    $ createdb mydb


    # Access db.
    $ psql mydb
    psql (9.0.1)
    Type "help" for help.






homebrew