Mysql
 sql >> Database >  >> RDS >> Mysql

Impossibile eseguire una stored procedure MySQL da Java

Ci sono due modi per risolverlo:

  1. impostare il noAccessToProcedureBodies=true della connessione proprietà

    Ad esempio come parte della stringa di connessione:

    jdbc:mysql://ipaddress:3306/test?noAccessToProcedureBodies=true
    

    Il driver JDBC creerà quindi stringhe "INOUT" per gli argomenti senza richiedere metadati come dice l'eccezione.

  2. Concedi SELECT privilegi su mysql.proc all'utente del database

    Ad esempio nel prompt di MySQL:

    GRANT SELECT ON mysql.proc TO 'user'@'localhost';
    

    Ovviamente ciò consentirebbe all'applicazione di leggere l'intero mysql.proc tabella che contiene informazioni su tutti stored procedure in tutti database (compreso il codice sorgente).