0

我们在一端有一个 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,即使该错误应该已修复。

有没有人遇到过这个?我想我做错了什么,每个人都说它应该工作,但对我来说它没有。

提前致谢!

4

2 回答 2

1

还没有验证它......只需使用这个:useInformationSchema = true for sql URL。(不要放 noAccessToBodys)。

于 2013-01-15T19:22:03.643 回答
0

我有 MySQL 服务器版本:5.1.52
我的 SQL 连接器 jar:mysql-connector-java-5.1.7-bin.jar
Tomcat:7.0.27.0
JDK 1.6.0.18

通过添加解决了上述问题noAccessToProcedureBodies=true,它对我有用!

于 2013-01-16T05:07:12.700 回答