1.3. Ein Datenbank erzeugen

Der erste Test um zu sehen ob Sie auf den Datenbankserver zugreifen können ist eine Datenbank zu erzeugen. Ein laufender PostgreSQL-Server kann mehrere Datenbanken verwalten. Normalerweise verwendet man eine separate Datenbank für jedes Projekt oder für jeden Benutzer.

Möglicherweise hat der Systemadministrator schon eine Datenbank für Sie erstellt. Er sollte Ihnen dann mitgeteilt haben, was der Name dieser Datenbank ist. In diesem Fall können Sie diesen Schritt auslassen und zum nächsten Abschnitt springen.

Um eine neue Datenbank, in diesem Beispiel mit Namen meinedb, zu erstellen, verwenden Sie den folgenden Befehl:

$ createdb meinedb

Das sollte folgende Antwort erzeugen:

CREATE DATABASE

Wenn ja, dann war dieser Schritt erfolgreich und Sie können den Rest dieses Abschnitts überspringen.

Wenn Sie eine Mitteilung ähnlich wie

createdb: command not found

sehen, dann ist PostgreSQL nicht ordnungsgemäß installiert worden. Entweder wurde es überhaupt nicht installiert oder der Suchpfad wurde nicht richtig gesetzt. Versuchen Sie, den Befehl mit einem absoluten Pfad aufzurufen:

$ /usr/local/pgsql/bin/createdb meinedb

Der Pfad mag bei Ihnen ein anderer sein. Setzen Sie sich mit dem Systemadministrator in Verbindung oder prüfen Sie nochmal die Installationsanweisungen um die Situation zu bereinigen.

Eine andere Antwort könnte diese sein:

psql: could not connect to server: Connection refused
        Is the server running locally and accepting
        connections on Unix domain socket "/tmp/.s.PGSQL.5432"?
createdb: database creation failed

Das bedeutet, dass der Server nicht gestartet wurde oder dass er nicht dort gestartet wurde, wo createdb ihn erwartete. Auch in diesem Fall gilt, schauen Sie nochmal in den Installationsanweisungen nach oder fragen Sie den Systemadministrator.

Wenn Sie die Rechte nicht haben, die zum Erzeugen einer Datenbank erforderlich sind, dann werden Sie folgendes sehen:

ERROR:  CREATE DATABASE: permission denied
createdb: database creation failed

Nicht jeder Benutzer hat die Autorisation, neue Datenbanken zu erzeugen. Wenn PostgreSQL sich weigert für Sie neue Datenbanken zu erzeugen, dann muss Ihnen Ihr Systemadministrator die Erlaubnis erteilen, Datenbanken erzeugen zu dürfen. Wenden Sie sich an den Systemadministrator falls das passiert. Wenn Sie PostgreSQL selbst installiert haben, sollten Sie sich für dieses Tutorial als der Benutzer anmelden, als der Sie den Server gestartet haben. [1]

Sie können auch Datenbanken mit anderen Namen erzeugen. PostgreSQL erlaubt die Erzeugung von beliebig vielen Datenbanken in einer Installation. Die Namen von Datenbanken müssen einen Buchstaben als erstes Zeichen haben und sind auf maximal 63 Zeichen Länge begrenzt. Eine günstige Wahl ist eine Datenbank mit dem gleichen Namen wie Ihr Benutzername. Viele Programme nehmen diesen Namen als Vorgabe an und können Ihnen somit etwas Tipparbeit ersparen. Um eine solche Datenbank zu erzeugen, geben Sie einfach ein

$ createdb

Wenn Sie Ihre Datenbank nicht mehr verwenden wollen, können Sie sie entfernen. Wenn Sie zum Beispiel der Eigentümer (Erzeuger) der Datenbank meinedb sind, dann können Sie sie mit dem folgenden Befehl zerstören:

$ dropdb meinedb

(Bei diesem Befehl ist der Vorgabewert für den Datenbanknamen nicht der Benutzername. Der Datenbankname muss immer angegeben werden.) Diese Aktion entfernt alle Dateien, die zu dieser Datenbank gehören, und kann nicht rückgängig gemacht werden. Er sollte daher nur nach sorgfältiger Überlegung angewendet werden.

Fußnoten

[1]

Eine Erklärung warum das funktioniert: PostgreSQL-Benutzernamen sind getrennt von den Benutzernamen des Betriebssystems. Wenn Sie zu einer Datenbank verbinden, können Sie bestimmen, als welcher PostgreSQL-Benutzer Sie verbinden wollen; wenn Sie das nicht tun, dann wird der Benutzername des Betriebssystems als Vorgabe verwendet. Passenderweise gibt es immer einen PostgreSQL-Benutzer der den gleichen Namen hat wie der Betriebssystembenutzer der den Server gestartet hat, und passenderweise hat dieser Benutzer auch immer das Recht, Datenbanken zu erzeugen. Anstelle sich als dieser Benutzer anzumelden, können Sie auch überall die Option -U verwenden, um einen PostgreSQL-Benutzer zu bestimmen, als der Sie verbinden wollen.