Sembra che tu stia cercando di usare jdbc:mariadb://...
per stabilire una connessione a un'istanza del server MariaDB utilizzando MySQL JDBC Driver. Probabilmente non funzionerà perché il driver MySQL JDBC userebbe jdbc:mysql://...
, indipendentemente dal fatto che si stia connettendo a un server MySQL oa un server MariaDB. Ovvero, la stringa di connessione deve corrispondere al driver che viene utilizzato (piuttosto che al server di database a cui si accede).
I driver MySQL e MariaDB dovrebbero essere in qualche modo intercambiabili, ma sembra prudente usare il connettore MariaDB solo quando si accede a un server MariaDB. Per quel che vale, la combinazione di mariadb-java-client-1.1.7.jar
e
Connection con = DriverManager.getConnection(
"jdbc:mariadb://localhost/project",
"root",
"whatever");
ha funzionato per me. Ho scaricato la libreria client MariaDB per Java da qui:
https://downloads.mariadb.org/client-java/1.1.7/
a cui sono arrivato tramite
https://downloads.mariadb.org/
Note aggiuntive:
-
Non è necessario un
Class.forName()
dichiarazione nel codice Java. -
La configurazione predefinita per MariaDB sotto Mageia può includere
skip-networking
direttiva in/etc/my.cnf
. Dovrai rimuovere (o commentare) quella direttiva se vuoi connetterti al database tramite JDBC perché le connessioni JDBC sembrano sempre connessioni di "rete" a MySQL/MariaDB, anche se sono connessioni dalocalhost
. (Potrebbe essere necessario modificarebind-address
valore a qualcosa come0.0.0.0
anche.)