PostGreSQL#

PostgreSQL ist laut http://www.postgres.de ein objekt-relationales Datenbank-Managementsystem...

Schnellstart unter Debian Linux#

Wenn man PostgreSQL nicht selber kompiliert und lokal als User installiert (was auch geht), wird man in den meisten Fällen ein fertiges Paket des Betriebssystems installieren. Unter Debian Squeeze war es bei mir nun so, daß man dort im ersten Moment gar nicht direkt auf die Datenbank zugreifen konnte, weil noch keine Benutzer eingerichtet waren. In einer neu installierten PostgreSQL-Datenbank ist der Superuser der Benutzer "postgres". Dieser hat kein Passwort, sondern kann sich nur an der Datenbank authentifizieren, wenn man als Unix-Benutzer "postgres" auf ihn zugreift. Dieser Unix-Benutzer ist bereits angelegt, hat aber auch kein Passwort. Also wird man zuerst "root", wecchselt dann mittels "su" zu "postgres" und kann dann auf die Datenbank zugreifen.

Man kann Benutzer mit Hilfe von "psql" anlegen, mit dem man direkte SQL-BEfehle an die Datenbank schicken kann. Für einige Dinge (wie das Anlagen von Benutzern) gibt es jedoch vereinfachende Konsolenbefehle. Also nimmt man "createuser". Ich habe die Option "-d" hinzugefügt, damit der neue Benutzer eigenständig Datenbanken anlegen kann.

Eventuell ist noch die Option "-P" sinnvoll, um ein Passwort vergeben zu können. Ansonsten kann man nur per "ident"-Authenfifizierung, d.h. nur lokal bei einer Socket-Connection von einem gleichnamigen Unix-Account aus auf die Datenbank zugreifen. Weitere Optionen stehen in der Manpage zu "createuser".

  $ su root
  # su postres
  $ createuser -dSR meinbenutzer

Wenn man "meinbenutzer" gleich seinem Unix-Account gewählt hat, kann dieser Account nun direkt auf die Datenbank zugreifen.

  $ createdb test
  $ psql test

Nun kann man munter SQL-Befehle absetzen, was nicht mehr Teil dieses Artikels ist. -- ThomasBayen

Ich empfehle ansonsten alternativ den Artikel Use PostgreSQL Relational Databases on on Debian 5 (Lenny)

selbst kompilieren#

Alles halb so wild. Im Gegensatz zu MySQL (siehe dort) habe ich PostGreSQL auch unter HPUX kompilieren können.

Geht auch ohne Root-Rechte mit 
configure --PREFIX=/home/dau
make && make install

wichtige Konsolenbefehle#

Die Verwaltung erfolgt mit pg_ctl, einfach das Pg-bin-Verzeichnis in den Suchpfad einbinden:

% > pg_ctl --help
pg_ctl is a utility to start, stop, restart, reload configuration files,
report the status of a PostgreSQL server, or signal a PostgreSQL process.

Usage:
  pg_ctl start   [-w] [-D DATADIR] [-s] [-l FILENAME] [-o "OPTIONS"]
  pg_ctl stop    [-W] [-D DATADIR] [-s] [-m SHUTDOWN-MODE]
  pg_ctl restart [-w] [-D DATADIR] [-s] [-m SHUTDOWN-MODE] [-o "OPTIONS"]
  pg_ctl reload  [-D DATADIR] [-s]
  pg_ctl status  [-D DATADIR]
  pg_ctl kill    SIGNALNAME PID

Common options:
  -D, --pgdata DATADIR   location of the database storage area
  -s, --silent           only print errors, no informational messages
  -w                     wait until operation completes
  -W                     do not wait until operation completes
  --help                 show this help, then exit
  --version              output version information, then exit
(The default is to wait for shutdown, but not for start or restart.)
[...]

Der Konsolen-Client lauscht auf den Namen psql:

% > psql --help
[... alle Parameter ...]

% > psql -d __DB__ -U __User__ -W -h __Horst__ -p __Port__

DB => \? ->listet Hilfe am psql-Prompt auf
DB => \l -> listet alle Postgres-Datenbanken auf dem Pg-Server
DB => \c Blumenkohl -> verbindet mit Datenbank aus der Gattung Sellerie
DB => \dt -> listet Tabellen der aktuell verbundenen DB
DB => \q -> beendet den Klienten

--MarkusMonderkamp

Volltextsuche#

Postgres hat eine recht ausgefeilte Möglichkeit zur Volltextsuche. Mehr dazu auf der Seite PostgresVolltext.

automatische Erzeugung von IDs#

Hierzu habe ich auf der Seite AutoIncrementMitPostgreSQL einen Artikel geschrieben. -- ThomasBayenL

Tags:  Datenbank