[英]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.