我们在一端有一个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,即使bug应该被修复。
有人遇到过这个吗?我想我做错了什么,每个人都说这应该有用,但对我来说却没有。
提前致谢!
答案 0 :(得分:0)
尚未验证...只需使用:对于sql URL,useInformationSchema = true。 (不要把noAccessToBodies)。
答案 1 :(得分:0)
我有MySQL服务器版本:5.1.52
我的SQL Connector jar:mysql-connector-java-5.1.7-bin.jar
Tomcat:7.0.27.0
JDK 1.6.0.18
通过添加noAccessToProcedureBodies=true
解决了上述问题,它对我有用!