java 不能执行mysql存储过程_无法从Java执行MySQL存储过程

我正在连接到从运行在tomcat的web应用程序在linux机器上运行的MySQL(5.08)数据库。

当我尝试执行一个存储过程时,我得到以下异常:

com.hp.hpl.chaos.web.exception.DBException: getNextValue for operatorinstance[Additional Information from SQL Exception][SQLErrorCode: 0 SQLState: S1000

at com.hp.hpl.chaos.web.util.SQLUtil.getNextValue(SQLUtil.java:207)

..............

Caused by: 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.

at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:910)

at com.mysql.jdbc.DatabaseMetaData.getCallStmtParameterTypes(DatabaseMetaData.java:1619)

at com.mysql.jdbc.DatabaseMetaData.getProcedureColumns(DatabaseMetaData.java:4034)

at com.mysql.jdbc.CallableStatement.determineParameterTypes(CallableStatement.java:709)

at com.mysql.jdbc.CallableStatement.(CallableStatement.java:513)

at com.mysql.jdbc.Connection.parseCallableStatement(Connection.java:4583)

at com.mysql.jdbc.Connection.prepareCall(Connection.java:4657)

at com.mysql.jdbc.Connection.prepareCall(Connection.java:4631)

at com.hp.hpl.chaos.web.util.SQLUtil.getNextValue(SQLUtil.java:196)

... 17 more

在机器上安装mysql之后。我已经给出了以下授权选项

mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'pass';

Query OK, 0 rows affected (0.00 sec)

mysql> FLUSH PRIVILEGES;

Query OK, 0 rows affected (0.00 sec)

在java类中

我正在连接到db,如下所示:

String url = "jdbc:mysql://ipaddress:3306/test";

con = DriverManager.getConnection(url,"root", "pass");

我还尝试了包含noAccessToProcedureBody = true选项的url。

有人可以告诉我这里有什么问题吗?有什么需要检查吗?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值