DISCLAIMER: Das ist und wird kein Tutorial oder richtiges Howto, es ist eher sowas wie eine Merkhilfe für den Autoren.
Benutztes System: Debian GNU/Linux. Benutzte Postgres-Version: 7.4.
Die Sachen, die im Folgenden aus komplett grossgeschriebenen Worten bestehen (CREATE USER und sowas) sind SQL-Befehle. Meist ist nur eine von vielen Varianten angegeben (CREATE USER hat z.B. viele hier ungenannte Parameter). Zur Referenz empfehle ich einfach irgendein SQL-Buch.
Installation
apt-get install postgresql
- ((Dinge, die ich vergessen habe. Werden eingefügt, wenn ich die Info wiederfinde bzw. nochmal installieren muss.))
Eine Datenbank einrichten
user postgres werden (als root su postgres)
standard-tempalte auf unicode umstellen, siehe http://wiki.archlinux.org/index.php/PostgreSQL#Change_Default_Encoding_of_New_Databases_To_UTF-8_.28Optional.29
template1 ist die default-Datenbank zur Administration aller anderen Datenbanken. Darum eingebena(als postgres): psql template1
dann im Prompt CREATE DATABASE irgendeinname ; eingeben, wobei irgendeinname durch irgendeinen Namen ersetzt werden kann. Semikolon beachten
um die jetzt bestehende Datenbank zu connecten, einfach \c irgendeinname eingeben.
defaultmaessig steht in der Zugriffs-Config-Datei /etc/postgresql/7.4/main/pg_hba.conf drin, dass lokale Zugriffe per ident-System authentifiziert werden. Folgende Änderungen der Datei ändern dies auf eine Passwort-Abfrage des Datenbank-Users, der nachher eingerichtet wird:
- aus:
# All other connections by UNIX sockets local all all ident sameuser # # All IPv4 connections from localhost host all all 127.0.0.1 255.255.255.255 ident sameuser
- wird:
# All other connections by UNIX sockets local all all password # # All IPv4 connections from localhost host all all 127.0.0.1 255.255.255.255 password
- aus:
Einen User in der neuen Datenbank einrichten
- wieder mit psql in template1 einloggen
CREATE USER name PASSWORD 'passwort'; eingeben, wobei name und passwort ersetzt werden sollten
ALTER USER name CREATEUSER; macht nen superuser aus dem erstellten user.
Backup und Restore einer Datenbank
- auf den Rechner einloggen und postgres werden
Backup: pg_dumpall > db.out
Restore: psql -f db.out template1
db.out kann natürlich beliebig benannt werden.
ODBC Schnittstelle an die Datenbank ran
apt-get install odbc-postgresql unixodbc
so eine /etc/odbcinst.ini erstellen:
[PostgreSQL] Description = PostgreSQL ODBC driver Driver = /usr/lib/odbc/psqlodbc.so Setup = /usr/lib/odbc/libodbcpsqlS.so Debug = 0 CommLog = 1 FileUsage = 1
so eine /etc/odbc.ini erstellen:
[PostgreSQL irgendeinname] Description = PostgreSQL irgendeinname Driver = PostgreSQL Trace = No TraceFile = /tmp/psqlodbc.log Database = irgendeinname Servername = localhost UserName = username Password = passwort Port = 5432 Protocol = 6.4 ReadOnly = No RowVersioning = No ShowSystemTables = No ShowOidColumn = No FakeOidIndex = No ConnSettings =
jetzt muesste isql -vv 'PostgreSQL irgendeinname' username klappen.
Mit PGAdmin eine Datenbank verwalten
Datenbank zur Liste hinzufügen
erstmal apt-get install pgadmin3 und starten
- File - Add Server - ...
Address ist in diesem Beispiel 127.0.0.1, ansonsten muss entsprechend oben auch die Zugriffsteuerung angepasst werden
Initial DB ist hier irgendeinname.
Kann sein, dass mit template1 und User postgres auch die Erstellung neuer Datenbanken moeglich ist. Ungetestet.
- Username und Passwort auch wie oben.
Mit Openoffice auf eine Datenbank zugreifen
- Openoffice nutzt odbc, um auf die Datenbank zuzugreifen, also muss die Datenbank den entsprechenden Treiber eingerichtet haben (s.o.).
apt-get install openoffice.org
- neues Dokument öffnen
- Tools - Data Sources... anklicken. Hier irgendeinen Namen ausdenken, als Typ odbc auswählen, auf ... klicken und die oben erstellte Datenbank auswählen. Bei den anderen Karteireitern können noch einzelne Tabellen ausgewählt werden usw.