Có hai cách để giải quyết vấn đề này:
-
đặt
noAccessToProcedureBodies=true
của kết nối tài sảnVí dụ như một phần của chuỗi kết nối:
jdbc:mysql://ipaddress:3306/test?noAccessToProcedureBodies=true
Sau đó, trình điều khiển JDBC sẽ tạo chuỗi "INOUT" cho các đối số mà không yêu cầu dữ liệu meta như ngoại lệ nói.
-
Cấp
SELECT
đặc quyền trênmysql.proc
cho người dùng cơ sở dữ liệuVí dụ trong lời nhắc mysql:
GRANT SELECT ON mysql.proc TO 'user'@'localhost';
Tất nhiên, điều này sẽ cho phép ứng dụng đọc toàn bộ
mysql.proc
bảng chứa thông tin về tất cả các thủ tục được lưu trữ trong tất cả cơ sở dữ liệu (bao gồm cả mã nguồn).