Anscheinend versuchen Sie, jdbc:mariadb://...
zu verwenden um mit dem MySQL JDBC-Treiber eine Verbindung zu einer MariaDB-Serverinstanz herzustellen. Das wird wahrscheinlich nicht funktionieren, weil der MySQL JDBC-Treiber jdbc:mysql://...
verwenden würde , unabhängig davon, ob eine Verbindung zu einem MySQL-Server oder einem MariaDB-Server hergestellt wird. Das heißt, die Verbindungszeichenfolge muss mit dem Treiber übereinstimmen der verwendet wird (und nicht der Datenbankserver, auf den zugegriffen wird).
Die MySQL- und MariaDB-Treiber sollen einigermaßen austauschbar sein, aber es erscheint sinnvoll, den MariaDB-Connector nur beim Zugriff auf einen MariaDB-Server zu verwenden. Für das, was es wert ist, die Kombination von mariadb-java-client-1.1.7.jar
und
Connection con = DriverManager.getConnection(
"jdbc:mariadb://localhost/project",
"root",
"whatever");
hat für mich funktioniert. Ich habe die MariaDB Client Library für Java von hier heruntergeladen:
https://downloads.mariadb.org/client-java/1.1.7/
auf die ich über
gelangt binhttps://downloads.mariadb.org/
Zusätzliche Anmerkungen:
-
Es ist kein
Class.forName()
erforderlich -Anweisung in Ihrem Java-Code. -
Die Standardkonfiguration für MariaDB unter Mageia kann das
skip-networking
enthalten Direktive in/etc/my.cnf
. Sie müssen diese Anweisung entfernen (oder auskommentieren), wenn Sie sich über JDBC mit der Datenbank verbinden möchten, da JDBC-Verbindungen immer wie "Netzwerk"-Verbindungen zu MySQL/MariaDB aussehen, selbst wenn es sich um Verbindungen vonlocalhost
. (Möglicherweise müssen Sie dieBind-Adresse
anpassen Wert auf so etwas wie0.0.0.0
auch.)