Anleitung: MySQL-Connector-Java Classpath setzen und Verbindung zur MySQL-Datenbank unter Ubuntu herstellen
In diesem Tutorial lernst du Schritt für Schritt, wie du den Java-MySQL-Connector (JDBC) unter Ubuntu installierst, den CLASSPATH konfigurierst und eine Java-Anwendung erfolgreich mit einer MySQL-Datenbank verbindest.
Voraussetzungen
Stelle sicher, dass Java (JDK) und der MySQL-Server auf deinem System installiert sind. Falls noch nicht geschehen, installiere sie mit:
sudo apt update
sudo apt install default-jdk mysql-server
Schritt 1: MySQL Connector/J installieren
Unter Ubuntu kann der offizielle Treiber bequem über das Paketverwaltungssystem installiert werden:
sudo apt install libmysql-java
Nach der Installation liegt die JAR-Datei standardmäßig im Verzeichnis /usr/share/java/. Du kannst überprüfen, ob die Datei existiert:
ls -l /usr/share/java/mysql-connector-java.jar
Schritt 2: MySQL-Datenbank und Testbenutzer einrichten
Erstelle eine Test-Datenbank und einen Benutzer für die Java-Verbindung:
-
Öffne die MySQL-Konsole:
sudo mysql -
Führe folgende SQL-Befehle aus:
CREATE DATABASE testdb; CREATE USER 'testuser'@'localhost' IDENTIFIED BY 'Passwort123!'; GRANT ALL PRIVILEGES ON testdb.* TO 'testuser'@'localhost'; FLUSH PRIVILEGES; EXIT;
Schritt 3: Java-Testprogramm schreiben
Erstelle eine Datei namens DatabaseTest.java in einem Verzeichnis deiner Wahl:
nano DatabaseTest.java
Füge folgenden Code ein:
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class DatabaseTest {
public static void main(String[] args) {
// Verbindungsdaten
String url = "jdbc:mysql://localhost:3306/testdb";
String user = "testuser";
String password = "Passwort123!";
System.out.println("Verbindung zur Datenbank wird aufgebaut...");
try {
// Treiber laden (ab JDBC 4.0 optional, aber empfohlen)
Class.forName("com.mysql.cj.jdbc.Driver");
// Verbindung herstellen
Connection connection = DriverManager.getConnection(url, user, password);
System.out.println("Erfolg: Verbindung zur MySQL-Datenbank hergestellt!");
connection.close();
} catch (ClassNotFoundException e) {
System.err.println("Fehler: MySQL-JDBC-Treiber nicht gefunden. Überprüfe den Classpath!");
e.printStackTrace();
} catch (SQLException e) {
System.err.println("Fehler: Verbindung zur Datenbank fehlgeschlagen!");
e.printStackTrace();
}
}
}
Speichere die Datei mit Strg + O, bestätige mit Enter und schließe sie mit Strg + X.
Schritt 4: Den Classpath setzen
Damit der Java-Compiler (javac) und die Java-Laufzeitumgebung (java) die MySQL-Klassen finden, muss der Classpath auf die .jar-Datei verweisen. Hierfür gibt es zwei Möglichkeiten:
Methode A: Temporär beim Kompilieren und Ausführen (Empfohlen)
Gib den Pfad zur JAR-Datei direkt mit dem Parameter -cp (oder -classpath) an.
Hinweis: Der Punkt . bindet das aktuelle Arbeitsverzeichnis mit ein; unter Linux werden Pfade durch einen Doppelpunkt : getrennt.
1. Kompilieren:
javac DatabaseTest.java
(Das Kompilieren funktioniert meist auch ohne Classpath, da im Code nur Standard-Schnittstellen aus java.sql verwendet werden).
2. Ausführen:
java -cp .:/usr/share/java/mysql-connector-java.jar DatabaseTest
Methode B: Dauerhaft über eine Umgebungsvariable
Wenn du den Parameter nicht jedes Mal manuell tippen möchtest, kannst du die Umgebungsvariable CLASSPATH in deiner Shell-Konfiguration hinterlegen:
-
Öffne die Konfigurationsdatei deines Benutzers:
nano ~/.bashrc -
Füge ganz am Ende der Datei folgende Zeile ein:
export CLASSPATH=".:/usr/share/java/mysql-connector-java.jar:$CLASSPATH" -
Lade die Konfiguration neu:
source ~/.bashrc -
Nun kannst du das Programm ohne zusätzliche Parameter ausführen:
java DatabaseTest
Schritt 5: Ergebnis überprüfen
Wenn alles richtig konfiguriert wurde, liefert das Terminal die folgende Ausgabe:
Verbindung zur Datenbank wird aufgebaut...
Erfolg: Verbindung zur MySQL-Datenbank hergestellt!
Typische Fehlerbehebung
ClassNotFoundException: com.mysql.cj.jdbc.Driver: Der Pfad zur JAR-Datei im Classpath ist fehlerhaft oder die Datei existiert nicht unter/usr/share/java/mysql-connector-java.jar.Access denied for user 'testuser'@'localhost': Benutzername oder Passwort im Java-Code stimmen nicht mit den Rechten in MySQL überein.CommunicationsException: Communications link failure: Der MySQL-Dienst läuft nicht. Starte ihn mitsudo systemctl start mysql.