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 }}} = 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.