Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Không thể thực thi một thủ tục được lưu trữ MySQL từ Java

Có hai cách để giải quyết vấn đề này:

  1. đặt noAccessToProcedureBodies=true của kết nối tài sản

    Ví 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.

  2. Cấp SELECT đặc quyền trên mysql.proc cho người dùng cơ sở dữ liệu

    Ví 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).



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySql Lỗi chung:2053

  2. ĐẶT HÀNG MySQL BẰNG TRONG ()

  3. Thiếu mysql.h và cố gắng tìm mysql-devel

  4. Chỉ số MySQL và thứ tự

  5. mysql GRANT + WHERE