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:
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:
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":
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 ;-).
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.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!)
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 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