今天用kettle调用mysql 的存储过程报错了,错误如下:
在网上搜了一下,说是
JDBC在调用存储过程时不光用户要有execute的权限,还需要对mysql.proc具有访问权限, 我这里测试了两种方法,都是可以的
方法一:在连接数据库的时候,在链接字符窜的选项中添加 “noAccessToProcedureBodies=true”,
方法二:对mysql数据库下的proc赋权
- 2015/07/14 17:35:43 - aaa - 为了转换解除补丁开始 [aaa]
2015/07/14 17:35:43 - 获取昨天日期.0 - 完成处理 (I=0, O=0, R=1, W=1, U=0, E=0
2015/07/14 17:35:43 - analyse.P_STAT_ALL_EVERYDAY.0 - ERROR (version 5.4.0.1-130, build 1 from 2015-06-14_12-34-55 by buildguy) : Because of an error, this step can't continue:
2015/07/14 17:35:43 - analyse.P_STAT_ALL_EVERYDAY.0 - Unable to prepare database procedure call
2015/07/14 17:35:43 - analyse.P_STAT_ALL_EVERYDAY.0 - 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.
2015/07/14 17:35:43 - analyse.P_STAT_ALL_EVERYDAY.0 - 完成处理 (I=0, O=0, R=1, W=0, U=0, E=1
2015/07/14 17:35:43 - aaa - ERROR (version 5.4.0.1-130, build 1 from 2015-06-14_12-34-55 by buildguy) : 错误被检测到!
2015/07/14 17:35:43 - aaa - ERROR (version 5.4.0.1-130, build 1 from 2015-06-14_12-34-55 by buildguy) : 错误被检测到!
2015/07/14 17:35:43 - aaa - ERROR (version 5.4.0.1-130, build 1 from 2015-06-14_12-34-55 by buildguy) : 错误被检测到!
2015/07/14 17:35:43 - aaa - 转换被检测
2015/07/14 17:35:43 - aaa - 转换正在杀死其他步骤!
方法一:在连接数据库的时候,在链接字符窜的选项中添加 “noAccessToProcedureBodies=true”,
方法二:对mysql数据库下的proc赋权
- mysql> grant select on mysql.proc to kettle@'10.10.%' identified by '*********';
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/30150152/viewspace-1733167/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/30150152/viewspace-1733167/