Wygląda na to, że próbujesz użyć jdbc:mariadb://...
w celu nawiązania połączenia z instancją serwera MariaDB przy użyciu sterownika MySQL JDBC. To prawdopodobnie nie zadziała, ponieważ sterownik MySQL JDBC użyje jdbc:mysql://...
, niezależnie od tego, czy łączy się z serwerem MySQL czy serwerem MariaDB. Oznacza to, że ciąg połączenia musi być zgodny z sterownikiem który jest używany (a nie serwer bazy danych, do którego uzyskuje się dostęp).
Sterowniki MySQL i MariaDB powinny być w pewnym stopniu wymienne, ale rozsądne wydaje się używanie łącznika MariaDB podczas uzyskiwania dostępu do serwera MariaDB. Co jest warte, połączenie mariadb-java-client-1.1.7.jar
i
Connection con = DriverManager.getConnection(
"jdbc:mariadb://localhost/project",
"root",
"whatever");
pracował dla mnie. Pobrałem bibliotekę klienta MariaDB dla języka Java z tego miejsca:
https://downloads.mariadb.org/client-java/1.1.7/
do którego dotarłem przez
https://downloads.mariadb.org/
Dodatkowe uwagi:
-
Nie ma potrzeby stosowania
Class.forName()
oświadczenie w kodzie Java. -
Domyślna konfiguracja MariaDB pod Mageia może zawierać
skip-networking
dyrektywa w/etc/my.cnf
. Będziesz musiał usunąć (lub skomentować) tę dyrektywę, jeśli chcesz połączyć się z bazą danych przez JDBC, ponieważ połączenia JDBC zawsze wyglądają jak połączenia "sieciowe" z MySQL/MariaDB, nawet jeśli są połączeniami zlocalhost
. (Może być konieczne dostosowaniebind-address
wartość na mniej więcej0.0.0.0
również.)