java - 无法执行存储过程 (jdbc)。 'noAccessToProcedureBodies=true'

标签 java mysql tomcat jdbc mysql-connector

我们一端有一个 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/

相关文章:

java - Dataframe 未保存到 Cassandra 中

java - 使用正则匹配a^xb^x,其中x为a,b出现的次数

mysql - 有没有更快的方法来备份和恢复 mysql?

mysql - 选择每个类(class)的学生总数

java - Eclipse 中的 Tomcat - HTTP 状态 404 请求的资源不可用

java - 从 Servlet(或过滤器)访问 Tomcat 内部

java - 为 REST API 生成 Swagger UI 文档

java - 如何修复 maven pom.xml 中不可解析的 pom 错误?

php - 如何将此 SQL 查询转换为 Codeigniter Active Record?

eclipse - tomcat 7 @WebServlet