Tutorial PostgreSQL unter Mac OS X installieren

Diskutiere mit über: Tutorial PostgreSQL unter Mac OS X installieren im Datenbanksysteme für das Web Forum

  1. moses_78

    moses_78 Thread Starter MacUser Mitglied

    Beiträge:
    1.322
    Zustimmungen:
    22
    Registriert seit:
    08.04.2005
    PostgreSQL unter Unix/Mac OS X kompilieren und Installieren

    Ich habe wohl zu viel Zeit...daher eine weiteres kleines Tutorial :cool:

    Hier eine weitere Anleitung, diesmal, um das beliebte DBMS "PostgreSQL" zu
    installieren. Im Grunde läuft alles ähnlich wie bei MySQL ab, es gibt jedoch ein
    paar Unterschiede, welche zu beachten sind, wie zb. die anders geregelte
    Benutzerverwaltung.

    Hinweis: Eine Raute(#> ) vor den Befehlen bedeutet, dass man root-Rechte
    benötigt, um sie auszuführen. Ein Dollarzeichen bedeutet, dass die Rechte ei-
    nes gewöhnlichen Benutzers ausreichen. Root-Rechte erlangt man mit "sudo
    <Befehl>" oder "su root".

    Warum PostgreSQL?

    PostgreSQL ist, im Vergleich zu MySQL, die "große" Lösung. MySQL ist für
    kleinere Aufgaben vollkommen ausreichend, hat jedoch auch schwächen,
    was große Datenbestände betrifft. Eine Datensatz bei PostgreSQL zb. kann
    bis zu 1,6 Terabyte groß sein, bei MySQL (Typ MyISAM) sind es "nur" 64 Kb.
    Desweiteren verfügte PostgreSQL schon früh über praktische Features wie
    Stored Procedures und Trigger, zweiteres beispielsweise war schon in Ver-
    sion 6.2.1 (1997 erschienen) verfügbar, während MySQL es erst seit Version
    5.0.2 (Ende 2004) hat.

    Kompilierung

    Auch diese Software soll aus dem Programme-Verzeichnis installiert werden:
    Code:
    $> cd /Applications
    Dann müssen die Sourcen des aktuellsten (Stand 13.4.), stabilen Relaeses gesaugt werden:
    Code:
    $> curl -O http://ftp.de.postgresql.org/mirror/postgresql//source/v8.2.3/postgresql-8.2.3.tar.gz
    Das heruntergeladen, gzip-komprimierte tar-Archiv wird mit
    Code:
    $> tar xzvf postgresql-8.2.3.tar.gz
    dekomprimiert, und in das entstehende Verzeichnis gewechselt:
    Code:
    $> cd postgresql-8.2.3
    Nun wieder der bereits bekannte Dreisprung aus "configure", "make" und "make install":
    Code:
    $> ./configure --prefix=/usr/local/postgresql-8.2.3
    $> make
    #> make install
     
    Zuletzt bearbeitet: 13.04.2007
  2. moses_78

    moses_78 Thread Starter MacUser Mitglied

    Beiträge:
    1.322
    Zustimmungen:
    22
    Registriert seit:
    08.04.2005
    Konfiguration

    PostgreSQL benötigt wie MySQL einen eigenen User names "postgres", den
    wir nun im Controlpanel "Benutzer" einrichten. Das Passwort ist in diesem
    Fall allerdings wichtiger als bei MySQL, da es auch zur Identifizierung an dem
    PostgreSQL-Server verwendet wird. Darin liegt vielleicht der größte Unter-
    schied in der Anwendung im Vergleich zu MySQL, wo der User "mysql" nur
    dazu dient, den MySQL-Server nicht mit root-Rechten laufen zu lassen.

    Da die Bibliotheken und Binaries nach /usr/local/postgresql-8.1.3 kopiert
    wurden, soll uns nun ein symbolischer Link ein wenig Tipparbeit ersparen:
    Code:
    #> ln -s /usr/local/postgresql-8.2.3 /usr/local/pgsql
    Dieser Link erleichtert es auch, wenn man PgSQL updaten möchte; In die-
    sem Fall würde als Prefix dann eben ein anderer Installationspfad ange-
    geben und eine neue Verknüpfung von /usr/local/pgsql zum Installations-
    pfad erstellt; damit würden dann alle absoluten Pfade weiterhin stimmen.

    Das Verzeichnis "var" soll später die Datenbanken selbst, das Log- und das
    PID-File enthalten: ´
    Code:
    #> mkdir /usr/local/pgsql/var
    Das Verzeichnis wird nun User postgres zugewiesen, damit andere System-
    benutzer nicht auf den Ordner mit den Datenbanken zugreifen können:
    Code:
    #> chown postgres /usr/local/pgsql/var
    PostgreSQL sollte nun startbereit sein.

    Inbetriebnahme

    Hier noch etwas zur Benutzerverwaltung von PgSQL: Um den PostgreSQL-
    Daemon zu starten oder den Query-Browser zu verwenden, *muss* man
    als User "postgres" angemeldet sein. Beim Versuch, als Root, oder einen
    anderen Benutzer den Query-Browser, oder pg_ctl zu verwenden, bekommt
    man eine Fehlermeldung, und das Programm bricht ab.

    Daher wechseln wir mit
    Code:
    $> su postgres
    zu User "postgres". Außerdem muss noch der Ordner mit den Programmen
    wie pg_ctl in die PATH-Variable aufgenommen werden, damit man nicht
    immer den absoluten Pfad zu der Anwendung, sondern nur ihren Namen
    angeben muss:
    Code:
    postgres> echo "PATH=\$PATH:/usr/local/pgsql/bin" >> $HOME/.bash_profile
    postgres> export PATH=$PATH:/usr/local/pgsql/bin
    Das Programm "initdb" erstellt die benötigten Datenbanken:
    Code:
    postgres> initdb -D /usr/local/pgsql/var
    Jetzt kann der PostgreSQL-Daemon gestartet werden. Mit "D"-Flag wird der
    Ordner angegeben, indem Datenbanken und PID-File gespeichert werden
    sollen, "l" steht für das zu verwendende Logfile:
    Code:
    postgres> pg_ctl -D /usr/local/pgsql/var start -l /usr/local/pgsql/var/pgsql.log
    Das Output sollte so aussehen:
    postmaster starting

    Ist das nicht der Fall, lohnt sich ein Blick ins Logfile (cat /usr/local/pgsql/
    var/pgsql.log) und/oder eine PN an mich....

    Jetzt noch eine erste Datenbank erstellen:
    Code:
    postgres> createdb pg_test
    "psql" ist der Query-Browser unter PostgreSQL. Jetzt kann man mit
    Code:
    postgres> psql pg_test
    ein paar Queries ausprobieren. Das Programm kann mit \q jederzeit wieder
    beendet werden.

    @Badener: Ich weiss, die Installationspakete haben bei mir jedoch alle nicht
    funktioniert....
     
    Zuletzt bearbeitet: 13.04.2007
  3. Badener

    Badener Gast

    Bei mir auch nicht - aber auf der Seite gibt es auch ein Tutorial, was man ins Terminal tickern muß :D:D Siehe Link!

    Egal: Dein Tutorial ist auf jeden Fall besser erklärt - Glückwunsch dazu und danke für die viele Arbeit!
     
  4. moses_78

    moses_78 Thread Starter MacUser Mitglied

    Beiträge:
    1.322
    Zustimmungen:
    22
    Registriert seit:
    08.04.2005
    Feinschliff

    Damit der PgSQL-Daemon selbstständig startet, und beim Herunterfahren
    des Systems ordnungsgemäß beendet wird, muss ein sog. StartupItem in-
    stalliert werden.

    Zuerst muss das Verzeichnis "postgresql" in /Library/StartupItems erstellt
    werden:
    Code:
    #> mkdir /Library/StartupItems/postgresql
    In diesen Ordner kommen nun die Dateien "postgresql" und "StartupParameters.plist".
    Wir erstellen sie mit dem Editor "pico":
    Code:
    #> pico /Library/StartupItems/postgresql/StartupParameters.plist
    Die Datei soll folgenden Inhalt bekommen:
    Code:
    {
      Description   = "PostgreSQL 8.1.3 database server";
      Provides      = ("PostgreSQL");
      Requires      = ("Resolver");
    }
    Den Text kann man <ctrl> + o, <enter>, <ctrl> + x speichern, und den
    Editor verlassen.

    Das Gleiche muss noch mit dem eigentlichen Script passieren:
    Code:
    #> pico /Library/StartupItems/postgresql/postgresql
    Der Inhalt:
    Code:
    #!/bin/sh
    
    if [ -z $1 ] ; then
    		echo "Usage: $0 {start|stop|restart}"
    		exit 1
    fi
    
    . /etc/rc.common
    		
    StartService()
    {
    		ConsoleMessage "Starting PostgreSQL..."
    		su postgres -c '/usr/local/pgsql/bin/pg_ctl start -D /usr/local/pgsql/var -l /usr/local/pgsql/var/pgsql.log'		
    }
    
    StopService()
    {
    		ConsoleMessage "Shutting down PostgreSQL..."
    		su postgres -c '/usr/local/pgsql/bin/pg_ctl stop -D /usr/local/pgsql/var'
    }
    
    RestartService()
    {
    		StopService
    		StartService
    }
    
    
    RunService "$1"
    Auch hier wird der Text mit <ctrl> + o, <enter>, <ctrl> + x gespeichert,
    und der Editor verlassen.

    Jetzt müssen eigentlich nur noch die Zugriffsrechte für Verzeichnis und Script
    gesetzt werden:
    Code:
    #> chown -R root /Library/StartupItems/postgresql
    #> chgrp -R wheel /Library/StartupItems/postgresql
    #> chmod -R 755 /Library/StartupItems/postgresql
    #> chmod a-x /Library/StartupItems/postgresql/StartupParameters.plist
    Tja, dass müsste es eigentlich gewesen sein ;)

    Weiterführendes

    http://www.postgresql.org/docs/ - PgSQL-Dokumentation

    http://www.postgres.de - Offizielle Deutsche Seite von PostgreSQL

    http://aliacta.com/products/eduphant.htm - Ein PostgreSQL-Client
    für Mac OS X

    http://phppgadmin.sourceforge.net/ - PHP-basierendes Clientprogramm
    (Hinweis: Damit man mit PHP auf den PostgreSQL-Server funktioniert,
    muss PHP mit dem Flag --with-pgsql kompiliert sein. Dies ist zb. bei den
    Paketen von entropy.ch der Fall)

    http://www.phpfreaks.com/tutorials/60/1.php - Tutorial für die Nutzung
    von PostgreSQL mit PHP (englisch)

    http://us3.php.net/manual/de/ref.pgsql.php - Auszug aus der PHP-Doku
    mit allen PgSQL-Funktionen, in den Kommentaren (ganz unten) sind mehrere
    praktische Beispiele aufgelistet.

    Ansonsten wäre ich sehr dankbar, wenn einige von den DB-Gurus hier aus
    dem Forum mal drüberschauen könnten, und mich per PN auf eventuelle
    Fehler hinweisen könnten.

    @Badener: Danke :)
     
  5. tripod

    tripod MacUser Mitglied

    Beiträge:
    1
    Zustimmungen:
    0
    Registriert seit:
    18.04.2007
    Source saugen

    Betrifft: Kompilierung
    Abbruchmeldung "curl : (23) failed writing body",
    reicht es einen anderen mirror zu versuchen ?
     
  6. wegus

    wegus MacUser Mitglied

    Beiträge:
    15.034
    Zustimmungen:
    1.314
    Registriert seit:
    13.09.2004
    beizeiten gibt es sehr aktuelle Binaries für Mac OS, die sogar das Startobjekt gleich mit erzeugen. So z.B. bei www.entropy.ch . Da lohnt sich das selbst kompilieren nur noch in Spezialfällen!
     
  7. heinzheise

    heinzheise MacUser Mitglied

    Beiträge:
    2
    Zustimmungen:
    0
    Registriert seit:
    25.05.2007
    Bei mir klappt das Laden des Datenbank-Servers nach einem Neustart nicht. Ich muss jedes Mal
    Code:
    pg_ctl -D /usr/local/pgsql/var start -l /usr/local/pgsql/var/pgsql.log
    
    ins Terminal tippen, damit der Server startet. Woran kann es liegen? Sonst klappt alles prima mit dem Server, ich verwende Version 8.2.4.

    Danke für eine Antwort.

    Gruß,
    Heinz
     
  8. gidion

    gidion MacUser Mitglied

    Beiträge:
    22
    Zustimmungen:
    0
    Registriert seit:
    14.06.2007
    Hallo,

    wie kann ich die Datenbank wieder Deinstallieren?
     
  9. wegus

    wegus MacUser Mitglied

    Beiträge:
    15.034
    Zustimmungen:
    1.314
    Registriert seit:
    13.09.2004
    wie und wo hast Du sie denn installiert???
     
Die Seite wird geladen...
Ähnliche Themen - Tutorial PostgreSQL unter Forum Datum
MySQL startet nicht mehr unter 10.7 Datenbanksysteme für das Web 06.06.2012
PostgreSQL Problem unter Lion - Hilfe! Datenbanksysteme für das Web 14.10.2011
HILFE! Funktionen unter PostgreSQL einbinden - ist das denn so schwer? Datenbanksysteme für das Web 14.03.2009
Fragen zu MySQL Server unter Leopard Datenbanksysteme für das Web 02.04.2008
Tutorial MySQL unter Mac OS 10.4 kompilieren & installieren Datenbanksysteme für das Web 19.02.2006

Diese Seite empfehlen

Benutzerdefinierte Suche