Det verkar som att du försöker använda jdbc:mariadb://...
för att upprätta en anslutning till en MariaDB-serverinstans med hjälp av MySQL JDBC-drivrutinen. Det kommer förmodligen inte att fungera eftersom MySQL JDBC-drivrutinen skulle använda jdbc:mysql://...
, oavsett om den ansluter till en MySQL-server eller en MariaDB-server. Det vill säga, anslutningssträngen måste matcha drivrutinen som används (istället för databasservern som används).
MySQL- och MariaDB-drivrutinerna är tänkta att vara något utbytbara, men det verkar bara klokt att använda MariaDB-anslutningen när du kommer åt en MariaDB-server. För vad det är värt, kombinationen av mariadb-java-client-1.1.7.jar
och
Connection con = DriverManager.getConnection(
"jdbc:mariadb://localhost/project",
"root",
"whatever");
fungerade för mig. Jag laddade ner MariaDB Client Library för Java härifrån:
https://downloads.mariadb.org/client-java/1.1.7/
som jag kom fram till via
https://downloads.mariadb.org/
Ytterligare anmärkningar:
-
Det finns inget behov av en
Class.forName()
i din Java-kod. -
Standardkonfigurationen för MariaDB under Mageia kan inkludera
skip-networking
direktiv i/etc/my.cnf
. Du måste ta bort (eller kommentera) det direktivet om du vill ansluta till databasen via JDBC eftersom JDBC-anslutningar alltid ser ut som "nätverksanslutningar" till MySQL/MariaDB, även om de är anslutningar frånlocalhost
. (Du kan behöva justerabind-address
värde till något som0.0.0.0
likaså.)