Det här felet uppstår med MySQL Connector/J 8 version 8.0.11 eller tidigare (och de aldrig släppta MySQL Connector/J 6-versionerna). Du måste uppgradera till 8.0.12 eller högre (nuvarande senaste version är 8.0.17, se https://dev.mysql.com/downloads/connector/j/ ).
Från Connector/J 8.0.12 release notes :
Se även https://bugs.mysql.com/bug.php?id=87600
Som bakgrund, normalt, JDBC-drivrutiner som inte stöder en specifik URL (t.ex. baserat på underprotokollet efter jdbc:
), bör returnera null
, och ett undantag bör bara kastas om en URL är för drivrutinen, men det finns ett problem med URL:en eller med att skapa en anslutning.
Men även med denna bugg i MySQL Connector/J-drivrutinen skulle du fortfarande kunna ansluta till en Oracle-databas, som DriverManager
kommer att prova varje drivrutin tills den kan öppna en anslutning. Om inga drivrutiner kunde ansluta, kommer den att kasta den första undantag slängt av någon förare, eller - om alla förare returnerade null
- det kommer att skicka ett "Ingen lämplig drivrutin hittades" undantag.
I det här fallet ser det ut som att MySQL var drivrutinen som prövades före Oracle-drivrutinen, och eftersom du förväntar dig att din Oracle-anslutning också ska misslyckas, råkar det bara bli att MySQL-undantaget kastas ut eftersom det var det första undantaget.
Lång historia kort, uppdatera din MySQL Connector/J.