sql >> Databasteknik >  >> RDS >> Oracle

Hämtar MySQL-felstackspårning på Oracle JDBC Connection

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.




  1. Välj poster från NOW() -1 Dag

  2. Summa topp 5 värden i MySQL

  3. Hur oracle rowid genereras internt?

  4. Hur loggar man dataändring i postgresql?