Datenbanken Sommersemester 2021

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, also wie in Subato).

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.4.0-plainzip/ (nehmt den Download "squirrelsql-4.4.0-standard.zip" - wir sind ja Profis und brauchen deshalb keine Installer). Das wird irgendwohin entpackt.

Es wird eine Java Runtime 8 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:

Fehlermeldung Java18
Die aktuelle SquirrelSQL-Version unterstützt nicht Java 18.

Lösung: Java 17 als Zip-Datei herunterladen von https://www.oracle.com/java/technologies/downloads/#java17: dort unter "Linux" (sollte automatisch ausgewählt sein an den Hochschulrechnern) den Download "x64 Compressed Archive" wählen:
Download Java 17
Diese Datei entpacken z.B. auf den Desktop.

Dann in einer Shell mittels dieses Befehls die Umgebungsvariable "JAVA_HOME" auf den Pfad zum entpackten Java einstellen:
export JAVA_HOME=~/Desktop/jdk-17.0.3.1/
In der gleichen Shell dann SquirrelSQL aufrufen durch Ausführen von "squirrel-sql.sh"


Bevor man das tut, muss man allerdings den MariaDB-Treiber herunterladen. Die neueste Version findet man unter https://mariadb.com/downloads/#connectors.

Man wählt das Product "Java 8+ connector" und Version "3.0.4-GA":
Download MariaDB Connector

Jetzt lädt man die Datei "mariadb-java-client-3.0.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 ;-).
Drivers

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 ... Jetzt hat der Driver einen blauen Haken.

Driver händisch registrieren



Auf den Karteireiter "Aliases" klicken und dort auf "+":
Aliases

Bei Verwendung des Driver "mariadb-java-client-3.0.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!.

Bei früheren Versionen des Driver (im Semester 2021 wurde "mariadb-java-client-2.7.3.jar" verwendet) musste man die URL jdbc:mysql://mariadb1/username verwenden, aber mittlerweile wurde dies geändert. Verwendet man mit dem Driver "mariadb-java-client-3.0.4.jar" diese alte URL-Form, gibt es eine Fehlermeldung:
Hochschule Rhein-Main: 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!)

Alias zur MariaDB
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.
Abfrage-Fenster

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:
Column alias (1)

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:
Column alias (2)

Jetzt werden die gewünschten Spaltennamen angezeigt:
Column alias (3)



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:
Statement separator


Stand 29.06.2022
Historie:
22.05.2021: Erstellt
03.06.2021: SquirrelSQL-Einstellung "column alias"
13.05.2022: Aktualisiert auf SquirrelSQL 4.0.4 und MariaDB-Connector 3.0.4 (geänderte URL)
18.05.2022: Hinweis auf Java18-Fehler an Hochschulrechnern, Link auf OpenVPN-Anleitung der Hochschule.
29.06.2022: Statement Separator