Datenbanken Sommersemester 2023
Vorbereitung: VPN-Verbindung
Auf Privatrechnern muss eine VPN-Verbindung gemäß https://doku.cs.hs-rm.de/doku.php?id=openvpn aufgebaut werden
(Anmeldung mit Fachbereich-Login).
Mit dem "Checkpoint"-Client der Hochschule funktioniert es nicht, es muss OpenVPN sein!
Ist man im Campus-WLAN eingewählt, ist der Zugriff ebenfalls nicht möglich - auch hier muss eine VPN-Verbindung aufgebaut werden.
Installation SquirrelSQL
Download: https://sourceforge.net/projects/squirrel-sql/files/1-stable/4.5.1-plainzip/
(nehmt den Download "squirrelsql-4.5.1-standard.zip" - wir sind ja Profis und brauchen deshalb keine Installer). Das wird irgendwohin entpackt.
Es wird eine Java Runtime 11 oder neuer benötigt.
Gestartet wird SquirrelSQL durch Ausführen der Datei "squirrel-sql.bat" bzw. unter Linux/Mac über die entsprechenden Shell-Scripte.
Achtung:
Auf den Rechner der Hochschule startet SquirrelSQL nicht mit dieser Fehlermeldung:
Die aktuelle SquirrelSQL-Version unterstützt nicht Java 18 oder 19.
Lösung: auf den Hochschulrechner ist außerdem Java 11 installiert.
Deshalb in einer Shell mittels dieses Befehls die Umgebungsvariable "JAVA_HOME" auf den Pfad zu Java 11 einstellen:
export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64/
In der
gleichen Shell dann SquirrelSQL aufrufen durch Ausführen von "squirrel-sql.sh"
Bevor wir SquirrelSQL nutzen können, muss noch der MariaDB-Treiber heruntergeladen werden.
Die neueste Version findet man unter https://mariadb.com/downloads/#connectors.
Man wählt das Product "Java 8+ connector" und Version "3.1.4-GA":
Jetzt lädt man die Datei "mariadb-java-client-3.1.4.jar" herunter.
Die JAR-Datei speichert man ins Unterverzeichnis "lib" von SquirrelSQL. Dadurch erkennt SquirrelSQL den Driver automatisch:
man startet SquirrelSQL neu und klickt dann links auf "Drivers": jetzt hat der Eintrag "MariaDB Driver for MySQL and MariaDB" einen blauen Haken. Ist das nicht der Fall, hat man etwas
falsch gemacht ;-).
Falls der Driver dort nicht auftaucht, wurde er nicht korrekt erkannt. Dann muss man ihn händisch registrieren: den Driver wählen, Rechtsklick und "Modify Driver".
Man geht auf den Karteireiter "Extra Class Path" und ...
- klickt dort auf "Add". Die MariaDB-JAR-Datei auswählen
- Danach auf "List Drivers" klicken.
- Jetzt wird unten in der Combobox "Class Name" der "org.mariadb.jdbc.Driver" als einziger Eintrag angezeigt.
- Auf "OK" klicken.
Jetzt hat der Driver einen blauen Haken.
Auf den Karteireiter "Aliases" klicken und dort auf "+":
Bei Verwendung des Driver "mariadb-java-client-3.1.4.jar" trägt man im Feld "URL" den Text jdbc:mariadb://mariadb1/username
ein. Statt "username" gebt ihr natürlich euren Fachbereich-Login an.
Das Feld ist vorbelegt mit jdbc:mysql://host:3306/database
- wichtig ist, dass man mysql
durch mariadb
ersetzt!.
Verwendet man Driver "mariadb-java-client-3.1.4.jar" die vorgegebene URL
jdbc:mysql://mariadb1/username
, gibt es eine Fehlermeldung:
Mein Verbindungsname: Unable to create connection. Check your URL.
class java.sql.SQLException: Unable to create connection. Check your URL.
Alternativ geht auch die IP: jdbc:mariadb://10.18.40.223/username
.
Im Semester 2020 musste noch jdbc:mysql://mariadb1.local.cs.hs-rm.de/username
verwendet werden,
aber das klappt zumindest bei mir nicht mehr.
Benutzername und Passwort sind der Fachbereich-Login (nicht der Hochschul-Login!)
Jetzt auf "Test" klicken, um die Verbindung zu testen.
Nach dem ersten Start ist das Fensterlayout "ungünstig": das Abfrage-Ausführen-Fenster ist ziemlich winzig (gelber Hintergrund - im Screenshot rot markiert).
Das muss man sich größer ziehen.
Zum Ausführen von Abfragen klickt man auf den markierten Button - das führt den markierten Text aus.
Sinnvolle Einstellungen
In der Standardeinstellung zeigt SquirrelSQL nicht die Spalten-Aliasse in den Ergebnissen an. Beispiel-Abfrage:
select name as Name1, name as Name2 from Eis;
Die Ergebnisanzeige gibt trotzdem zweimal den Wert "name" aus:
Dies kann man per Einstellung ändern: unter Menü "File" => "Global Preferences" wird der Karteireiter "Data Type Controls" gewählt und dort
der Haken "Use column labels instead of column names in result headers" gesetzt:
Jetzt werden die gewünschten Spaltennamen angezeigt:
Statement Separator / Delimiter
Für Blatt 12 ist in der Aufgabenstellung ein Hinweis darauf, den Delimiter umzustellen:
DELIMITER //
Dieser Befehl funktioniert nur im MariaDB-Kommandozeilenclient. Bei SquirrelSQL führt er zu einer Fehlermeldung.
Hier muss der Trenner im Menü "Session" ==> "Session Properties" umgestellt werden. Die Einstellung liegt auf dem Karteireiter "SQL" und heißt "Statement Separator".
Das Semikolon wird z.B. durch "//" ersetzt:
Stand 17.05.2023
Historie:
11.05.2023: Erstellt aus Vorjahresanleitung
17.05.2023: Lösung für Java 19-Fehler an Hochschulrechnern überarbeitet (Verwendung des installierten Java 11 statt Download einer eigenen Version).