Datenbanken Sommersemester 2024

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.7.1-plainzip/ (nehmt den Download "squirrelsql-4.7.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.



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.4.0-GA":
Download MariaDB Connector

Jetzt lädt man die Datei "mariadb-java-client-3.4.0.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 "JDBC Driver 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.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. Der Username bedeutet hier, dass SquirrelSQL sich automatisch mit dieser Datenbank verbindet.

Das Feld ist vorbelegt mit jdbc:mariadb://host:3306/database.

Alternativ geht auch die IP (jdbc:mariadb://10.18.40.223/username) oder der voll qualifizierte Servername (jdbc:mysql://mariadb1.local.cs.hs-rm.de/username).

Benutzername und Passwort sind der Fachbereich-Login (nicht der Hochschul-Login!)

Alias zur MariaDB
Jetzt auf "Test" klicken, um die Verbindung zu testen.



Wenn die Verbindung zur Datenbank über die VPN-Verbindung aufgebaut wird, kommt eine Fehlermeldung "Access denied for user 'knauf'@'1.2.3.4' (using password: NO)":
Fehlermeldung
Lösung:
An die URL ?sslMode=verify-ca anhängen:
jdbc:mariadb://mariadb1/knauf?sslMode=verify-ca
Verbindung mit sslMode


Alternativ (führt zum gleichen Ergebnis) könnte man es auch in die Properties der Verbindung eintragen:
Properties
Dort auf dem Karteireiter "Driver properties" bei "sslMode" den Haken in der Spalte "Specify" setzen und den Value "verify-ca" eintragen:
Driver properties


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 10 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 25.05.2024
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).
22.05.2024: Angepasst an den Stand 2024
25.05.2024: "sslMode"