1. Willkommen im Forum für alle Datenbanken! Registriere Dich kostenlos und diskutiere über DBs wie Mysql, MariaDB, Oracle, Sql-Server, Postgres, Access uvm
    Information ausblenden

Server starten und stoppen

Dieses Thema im Forum "PostgreSQL" wurde erstellt von HaWe51, 19 Februar 2019.

  1. HaWe51

    HaWe51 Benutzer

    Hallo,
    wenn ich es richtig verstanden habe, wird der PostgresSQL11-Server auf meinem Rechner automatisch mit dem Betriebssystem gestartet. Es gibt doch sicherlich einen Befehl (z. B. über das Terminal) um den Server manuell zu starten und zu stoppen bzw. zu verhindern, dass er automatisch mit dem Betriebssystem gestartet wird.
    Die einzige Möglichkeit, die ich bisher gefunden habe um den Server zu stoppen, ist über PgAdmin.

    Für eine hilfreiche Antwort wäre ich sehr dankbar.
    Helmut
     
  2. castorp

    castorp Datenbank-Guru

    Das hängt von Deinem Betriebssystem ab.

    Unter Windows wäre das z.B.:
    Code:
    net stop postgresql-11
    net start postgresql-11
    Der genaue Name des Service hängt von Deiner Installation ab. Unter Windows kannst Du den "autostart" über die Dienste Verwaltung ändern, oder über da "sc" Tool:
    Code:
    sc config "postgresql-11" start= demand
    Ganz wichtig: das Leerzeichen nach dem =

    Unter CentOS wäre es z.B.:
    Code:
    systemctl stop postgresql-11.service
    systemctl start postgresql-11.service
    Autostart würde man (wenn ich das richtig im Kopf habe) über
    Code:
    systemctl disable postgresql-11
    machen.
     
    Zuletzt bearbeitet: 19 Februar 2019
  3. HaWe51

    HaWe51 Benutzer

    @castorp: Ich benutze macOS Mojave., da muss ich mal sehen wie das gehen könnte. Vielleicht hat da ja noch einer einen hilfreichen Hinweis.

    Erst einmal vielen Dank für Deine schnelle Antwort.
     
  4. HaWe51

    HaWe51 Benutzer

    Also, bei macOS gibt es sog. Anmeldeobjekte - Programme, die bei der Anmeldung eines Benutzers gestartet werden. Hier ist der PostgresSQL-Server nicht verzeichnet.
    Außerdem gibt es sog. LaunchAgents, die beim Systemstart gestartet werden. Hier ist der Server auch nicht aufgelistet.
    Dann gibt es noch sog. LaunchDaemons. Hier gibt es tatsächlich den
    "com.edb.launchd.postgresql-11.plist". Die plist hat folgenden Inhalt:

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN"
    "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
    <plist version="1.0">
    <dict>
    <key>Disabled</key>
    <false/>
    <key>Label</key>
    <string>com.edb.launchd.postgresql-11</string>
    <key>ProgramArguments</key>
    <array>
    <string>/Library/PostgreSQL/11/bin/postmaster</string>
    <string>-D/Library/PostgreSQL/11/data</string>
    </array>
    <key>RunAtLoad</key>
    <true/>
    <key>UserName</key>
    <string>postgres</string>
    <key>KeepAlive</key>
    <dict>
    <key>SuccessfulExit</key>
    <false/>
    </dict>
    </dict>
    </plist>


    Möglicherweise müßte man den <key>RunAtLoad</key> in der nachfolgenden Zeile auf <false/> setzen. Nur wie starte ich den Server dann manuell? Man kann ja nicht jedesmal die PList ändern.
     
  5. akretschmer

    akretschmer Datenbank-Guru

  6. akretschmer

    akretschmer Datenbank-Guru

  7. akretschmer

    akretschmer Datenbank-Guru

  8. HaWe51

    HaWe51 Benutzer

    @akretschmer: Vielen Dank für Deine Recherche - sehr interessant.

    Ich habe mich dann aber daran erinnert, dass @castorp mir einmal empfohlen hatte, die Postgres-App zu verwenden. Ich habe die App nun installiert und sie bietet tatsächlich eine sehr komfortable Lösung für das Starten und Stoppen des Servers und ermöglicht es auch festzulegen, ob der Server beim Systemstart mutgestartet werden soll. Alles in allem sehr komfortable.
     
    akretschmer gefällt das.
  9. HaWe51

    HaWe51 Benutzer

    Jetzt habe ich doch noch eine Frage:

    Wenn ich die in @akretschmers Recherche gezeigten Methoden verwenden will dann startet der ganze Prozess immer mit:
    Code:
    # Start postgres
     $ sudo su postgres
    Password:
    Bei der Installation von PostgresSQL via der Postgres-App habe ich aber kein Passwort für den Benutzer "postgres" vergeben. Die Datenbank "postgres" und der Benutzer "Postgres" wurden aber installiert. Wenn ich nun in o.a. Terminal-Befehl nach dem Passwort für postgres gefragt werde, muss ich passen weil ich es nicht weiss. Einfach die Eingabetaste drücken funktioniert wie erwartet nicht. Gibt es ein "Default-PW" für den Benutzer "postgres" oder eine Methode ein neues PW für ihn zu setzen (wahrscheinlich brauche ich dafür aber auch das alte PW)?
     
  10. castorp

    castorp Datenbank-Guru

    Da wird nach dem Passwort für den Mac User "postgres" gefragt. Wie man das Passwort eines Mac Users ändert kann ich aber nicht sagen. In einem Linux würde man das via passwd machen (wenn man sich als root einloggen kann).
     
  11. HaWe51

    HaWe51 Benutzer

    Ja, das habe ich mir schon gedacht. Als ich die Postgres-App noch nicht benutzt hatte und das "normale" PostgresSQL installiert hatte, wurde auch ein Mac User "postgres" eingerichtet. Nachdem ich Postgres jedoch deinstalliert hatte - eine Voraussetzung für eine saubere Postgres-App Installation - gibt es keinen Mac User "postgres" mehr. Die Postgres-App hat keinen eingerichtet.
    Natürlich könnte ich leicht selber einen einrichten und ein Passwort festlegen aber dann stellt sich die Frage welche Rechte soll/muss dieser Benutzer haben und der hätte dann ja nichts mit dem PostgresSQL-Server-User "postgres" zu tun. Irgendetwas verstehe ich hier noch nicht richtig.

    Außerdem müsste man dann ja auch
    Code:
    #start postgres
     $ sudo su name_des_normalen_Mac_Admin
    $ password:
    verwenden können oder?
     
    Zuletzt bearbeitet: 19 Februar 2019
  12. magpie

    magpie Neuer Benutzer

    Unter Linux muss man nach su ein - eingeben, dann startet postgres ohne Passwort.
    Code:
    sudo su - postgres ...
    vieleicht geht das unter MacOS auch so.
     
  13. HaWe51

    HaWe51 Benutzer

    @magpie: Leider nicht aber trotzdem vielen Dank für Deinen Post.

    Wenn ich mich als Admin des Computers einlogge und dann folgenden Befehl eingebe,
    Code:
    bash-3.2$ sudo pg_ctl -D /Users/DasDatenVerzeichnis/Postgres/var-11 stop
    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.
    bekomme ich den Hinweis mich als "user that will own the server process." einzuloggen (s. Codebeispiel).

    Ob es funktionieren würde, wenn ich auf dem Computer jetzt noch einen Benutzer "postgres mit sudo-Rechten" einrichten würde, weiss ich nicht. Da mein ursprünglicher Wunsch, den Server auf einfache Weise nach belieben starten und stoppen zu können, durch die Postgres-App erfüllt ist, werde ich das Ganze auch nicht weiter verfolgen. Es sei denn Jemand hat noch eine geniale Idee:
     
Die Seite wird geladen...

Diese Seite empfehlen

  1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden