我们一端有一个 java tomcat 服务器,另一端有一个 mysql。 我们正在使用 mysql-connector-java,尝试使用 5.1.11 和 5.1.22 版本。 mysql服务器版本为5.5.26
我们没有 mysql.proc 表的所有权限,因为它对所有数据库都有安全风险。
当我使用给定的用户名和密码登录 mysql 时,我可以执行这些过程,但是当从 java (jdbc) 使用时,它会爆炸
java.sql.SQLException: User does not have access to metadata required to determine stored procedure parameter types. If rights can not be granted, configure connection with "noAccessToProcedureBodies=true" to have driver generate parameters that represent INOUT strings irregardless of actual parameter types.
我尝试了 mysql 给出的建议,在我们的 jdbc 连接 URL 中使用了“noAccessToProcedureBodies=true”。一点帮助都没有!没有任何区别。 (这里是我使用的jdbc连接字符串的例子:jdbc:mysql://xxxxxx:xxxx/xxxx?noAccessToProcedureBodies=true&useInformationSchema=true)
当我读到http://bugs.mysql.com/bug.php?id=61203我看到连接器中有一个错误,我尝试按照建议使用 useInformationSchema=true。没有帮助,更新 mysql-connector-java 也没有帮助,即使错误应该被修复。
有没有人遇到过这个?我想我做错了什么,每个人都说它应该起作用,但对我来说却不起作用。
提前致谢!
最佳答案
尚未验证...只需使用此:useInformationSchema=true 作为 sql URL。 (不要放 noAccessToBodies)。
关于java - 无法执行存储过程 (jdbc)。 'noAccessToProcedureBodies=true',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12838784/