Es gibt zwei Möglichkeiten, dies zu lösen:
-
Setzen Sie
noAccessToProcedureBodies=true
der Verbindung EigenschaftZum Beispiel als Teil der Verbindungszeichenfolge:
jdbc:mysql://ipaddress:3306/test?noAccessToProcedureBodies=true
Der JDBC-Treiber erstellt dann "INOUT"-Strings für die Argumente, ohne dass Metadaten erforderlich sind, wie in der Ausnahme angegeben.
-
Gewähren Sie
SELECT
Privilegien aufmysql.proc
an den DatenbankbenutzerZum Beispiel in der mysql-Eingabeaufforderung:
GRANT SELECT ON mysql.proc TO 'user'@'localhost';
Dies würde es der Anwendung natürlich ermöglichen, die gesamte
mysql.proc
zu lesen Tabelle, die Informationen über alle enthält gespeicherte Prozeduren in alle Datenbanken (einschließlich Quellcode).