OpenOffice und MySQL (JDBC)

aus PUG, der Penguin User Group
Wechseln zu: Navigation, Suche

Siehe auch: OpenOffice und MySQL (ODBC)

Mit OpenOffice Base auf eine MySQL-Datenbank zuzugreifen ist eine ganz einfache Sache, wenn man dazu den JDBC-Connector benutzt. Diese Anleitung ist plattformunabhängig für alle OpenOffice-Versionen gültig, und zwar auch für NeoOffice auf dem Mac.

Voraussetzungen

Folgende Voraussetzungen müssen erfüllt sein:

  • Ein MySQL-Server muß entweder lokal laufen oder auf einem Datenbankserver im Netz erreichbar sein. Ist der Datenbankserver per Netzwerk erreichbar, muß die Erreichbarkeit per Netz in my.cnf aktiviert sein. Dies ist auf keiner Linux-Distribution die Voreinstellung.
    • Da man sich damit auf Servern, die im Internet stehen, ein gewaltiges Sicherheitsproblem einhandeln kann, wird hier kein Kochrezept geliefert, was man genau in der my.cnf machen muß.
    • Wer weiß, wie sowas geht, kann auch einen SSH-Tunnel zum Datenbankserver aufbauen und diesen nutzen.
  • OpenOffice muß eine benutzbare Sun-Java-Runtime-Umgebung kennen.
  • Auf dem System, wo OpenOffice laufen wird, sollte zum Testen der Verbindung ein MySQL-Client vorhanden sein.

Datenbank anlegen

Falls man noch keine gefüllte Datenbank hat, mit der man irgendwelche Dinge anstellen will, muß man erst einmal eine Datenbank anlegen. Dieser Schritt erfolgt auf dem Datenbankserver. Das kann ein Server im Netzwerk sein, oder auch ein Datenbankserver, der lokal auf der Workstation läuft.

Gnome-terminal.png
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 42
Server version: 5.0.32-Debian_7etch1-log Debian etch distribution

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql> create database oootest;
Query OK, 1 row affected (0.15 sec) 

mysql> grant all on oootest.* to ooouser identified by 'ooosecret';
Query OK, 0 rows affected (0.31 sec)

Dies ist ein guter Zeitpunkt, um von dem System, auf dem man OpenOffice verwenden will, die Verbindung zum MySQL-Datenbankserver (in unserem Fall die 192.168.1.11) zu testen, falls ein lokaler MySQL-Client vorhanden ist:

Gnome-terminal.png
$ mysql -uooouser -pooosecret -h192.168.1.11
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 6
Server version: 5.0.32-Debian_7etch1-log Debian etch distribution

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql> use oootest;
Database changed
mysql> show tables;
Empty set (0.00 sec)

MySQL-JDBC-Connector besorgen

Unter Debian erhält man einen mysql-Connector einfach durch Installation des Pakets openoffice.org-mysql-connector.

Ansonsten kann der MySQL Connector/J unter http://www.mysql.com/products/connector/j/ heruntergeladen werden. Unabhängig von der auf dem Datenbankserver laufenden MySQL-Version greift man dabei einfach zur aktuellsten Version. Im heruntergeladenen Tarball steckt eine JAR-Datei. Diese enthält den eigentlichen JDBC-Connector und man kann sie einfach an einen beliebigen Ort speichern. In diesem Fall wird sie einfach ins Homeverzeichnis gelegt:

Gnome-terminal.png
$ tar zxf mysql-connector-java-5.1.5.tar.gz
$ cp mysql-connector-java-5.1.5/mysql-connector-java-5.1.5-bin.jar ~

JAR-Datei im Classpath eintragen

Der sogenannte Classpath ist der Pfad, den die von OpenOffice verwendete Java-Runtime-Umgebung nach sogenannten Java-Klassen absucht. Eine solche Java-Klasse ist in unserer JAR-Datei enthalten.

Da sich unter OpenOffice leider die Katze ein wenig in den Schwanz beißt, wenn wir OpenOffice Base starten wollen, ohne daß die passende Klasse bekannt ist, starten wir zunächst den OpenOffice Writer, um freie Bahn zur Konfiguration zu haben:

Extras -> Optionen -> OpenOffice.org -> Java

Bei dieser Gelegenheit können wir auch überprüfen, ob ein Sun-Java-Runtime-Umgebung gefunden wurde und ausgewählt ist:

OpenOffice-Java.jpg

Classpath...

Der Classpath wird mit dem Button "Classpath..." auf der rechten Seite bearbeitet. Dort fügen wir mit "Archiv hinzufügen..." unsere oben ausgepackte JAR-Datei hinzu. Die Datei darf überall auf dem Dateisystem legen, wo man sie mit dem eigenen User lesen kann. Wenn sie hier hinzugefügt wurde, muß sie aber an diesem Ort liegenbleiben.

Danach beenden wir OpenOffice komplett.

Erster Start von OpenOffice Base

Wenn der Classpath um die JAR-Datei mit dem JDBC-Connector erweitert wurde, können wir endlich OpenOffice Base starten. In den sich öffnenden Wizard steigen wir mit "Verbindung zu einer bestehenden Datenbank herstellen" und "JDBC" ein.

Als Datenquellen-URL geben wir den Weg zu unserer Datenbank an. Und weil wir in Deutschland leben und es mit Umlauten zu tun haben werden, geben wir gleich an, daß wir Unicode bzw. UTF-8 nutzen wollen.

  • Datenquellen-URL: mysql://192.168.1.11/oootest?useUnicode=true&characterEncoding=utf8
  • JDBC-Treiberklasse: com.mysql.jdbc.Driver

OpenOffice-JDBC.jpg

An diesem Punkt können wir auf "Klasse testen" klicken um zu sehen, ob OpenOffice unsere JAR-Datei auch wirklich gefunden hat.

Im nächsten Schritt des Wizard können wir unseren Benutzernamen angeben und ankreuzen, daß ein Kennwort erforderlich ist und die Konnektivität zur Datenbank testen:

OpenOffice-JDBC-Test.jpg

Fertig

Nach dem Abspeichern der Datenbankverbindung als Datei landen wir im Startbildschirm von OpenOffice Base und können alles tun, was man so von einer Datenbank erwartet, wie z.B. Tabellen anlegen, Queries erstellen und abspeichern, oder grafische Formulare als Datenbankfrontend anlegen und benutzen.

OpenOffice-Base.jpg