簡體   English   中英

無法執行存儲過程(jdbc)。 'noAccessToProcedureBodies = true'

[英]Cannot execute a stored procedure (jdbc). 'noAccessToProcedureBodies=true'

一端有一個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 =真為SQL URL。 (不要放入noAccessToBodies)。

我有MySQL Server版本: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解決了上述問題,它對我noAccessToProcedureBodies=true

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM