- 浏览: 625091 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (819)
- java开发 (110)
- 数据库 (56)
- javascript (30)
- 生活、哲理 (17)
- jquery (36)
- 杂谈 (15)
- linux (62)
- spring (52)
- kafka (11)
- http协议 (22)
- 架构 (18)
- ZooKeeper (18)
- eclipse (13)
- ngork (2)
- dubbo框架 (6)
- Mybatis (9)
- 缓存 (28)
- maven (20)
- MongoDB (3)
- 设计模式 (3)
- shiro (10)
- taokeeper (1)
- 锁和多线程 (3)
- Tomcat7集群 (12)
- Nginx (34)
- nodejs (1)
- MDC (1)
- Netty (7)
- solr (15)
- JSON (8)
- rabbitmq (32)
- disconf (7)
- PowerDesigne (0)
- Spring Boot (31)
- 日志系统 (6)
- erlang (2)
- Swagger (3)
- 测试工具 (3)
- docker (17)
- ELK (2)
- TCC分布式事务 (2)
- marathon (12)
- phpMyAdmin (12)
- git (3)
- Atomix (1)
- Calico (1)
- Lua (7)
- 泛解析 (2)
- OpenResty (2)
- spring mvc (19)
- 前端 (3)
- spring cloud (15)
- Netflix (1)
- zipkin (3)
- JVM 内存模型 (5)
- websocket (1)
- Eureka (4)
- apollo (2)
- idea (2)
- go (1)
- 业务 (0)
- idea开发工具 (1)
最新评论
-
sichunli_030:
对于频繁调用的话,建议采用连接池机制
配置TOMCAT及httpClient的keepalive以高效利用长连接 -
11想念99不见:
你好,我看不太懂。假如我的项目中会频繁调用rest接口,是要用 ...
配置TOMCAT及httpClient的keepalive以高效利用长连接
在应用程序中调用存储过程,出现如下错误信息:
test_procedure executed failed because : Driver requires declaration of procedure to either contain a '\nbegin' or '\n' to follow argument declaration, or SELECT privilege on mysql.proc to parse column types.
这应该是由于MySQL用户权限不足造成的。
根据上述提示,修改了mysql.proc表中test_procedure所对应记录的definer字段的值。
原值为root@localhost,后修改为当前使用的用户myuser@%。这样就没问题了。
通过上述实验,似乎说明某个存储过程只能被自己的definer调用。
但我对此十分怀疑
又使用root@localhost创建了一个简单的存储过程test_proc,然后使用myuser@localhost用户call这个过程。
此时并没有报权限不足的问题
我可能对SELECT privilege on mysql.proc to parse column types这句话没有理解清楚。
请大家不吝指教!
转自:http://bbs.chinaunix.net/thread-893451-1-1.html
test_procedure executed failed because : Driver requires declaration of procedure to either contain a '\nbegin' or '\n' to follow argument declaration, or SELECT privilege on mysql.proc to parse column types.
这应该是由于MySQL用户权限不足造成的。
根据上述提示,修改了mysql.proc表中test_procedure所对应记录的definer字段的值。
原值为root@localhost,后修改为当前使用的用户myuser@%。这样就没问题了。
通过上述实验,似乎说明某个存储过程只能被自己的definer调用。
但我对此十分怀疑
又使用root@localhost创建了一个简单的存储过程test_proc,然后使用myuser@localhost用户call这个过程。
此时并没有报权限不足的问题
我可能对SELECT privilege on mysql.proc to parse column types这句话没有理解清楚。
请大家不吝指教!
转自:http://bbs.chinaunix.net/thread-893451-1-1.html
发表评论
-
mysql字段限定在某一范围取值
2023-12-15 15:02 313mysql字段限定在某一范围取值 -
mysql查询动态行转动态列,并使用mybatis执行
2023-04-02 22:56 658mysql查询动态行转动态列,并使用mybatis执行 My ... -
MySQL 正则表达式 通过正则匹配字符、替换特定字符、返回特定字符
2022-12-29 14:54 357MySQL 正则表达式 通过正则匹配字符、替换特定字符、返回特 ... -
MySQL InnoDB update锁表问题Record Locks
2022-12-20 12:26 269MySQL InnoDB update锁表问题Record L ... -
oracle 使用flashback(闪回)恢复误删除的数据 或 误删除的表
2022-09-02 19:44 268oracle 使用flashback(闪回)恢复误删除的数据 ... -
数据库面试题
2022-04-06 21:48 211分布式事务解决方案之TCC 分布式事务解决方案——Seata ... -
面试题
2022-02-11 11:38 242Java面试题目大汇总 数据库事务的隔离级别从低到高的顺序依 ... -
mysql相关问题 WAL机制、crash safe如何实现、redo log作用
2019-07-16 23:43 550https://www.jianshu.com/p/cd914 ... -
MySQL -- 内存使用监控详解
2019-06-12 13:59 637第一步: 配置performance_schema使它开启内存 ... -
Expression #2 of SELECT list is not in GROUP BY clause and contains nonaggregate
2018-01-01 12:17 1257https://www.cnblogs.com/lonelyw ... -
MySQL使用profile分析SQL执行状态
2017-08-24 09:49 530http://blog.csdn.net/staricqxyz ... -
blocked because of many connection errors; unblock with 'mysqladmin flush-hosts
2017-06-21 16:56 618错误:Host is blocked becaus ... -
MySQL半同步复制配置
2017-05-08 14:14 735MySQL半同步复制配置 http://blog.csdn.n ... -
mysql.sock的作用
2017-04-18 11:29 491Mysql有两种连接方式: (1),TCP/IP ... -
Linux下源码安装MySQL 5.6
2017-04-16 20:30 624http://blog.sina.com.cn/s/blog_ ... -
docker中mysql初始化及启动失败解决办法
2017-04-12 20:56 1823http://blog.csdn.net/rznice/art ... -
MySQL数据库自动生成并修改随机root密码的脚本
2017-03-25 15:10 1009http://blog.csdn.net/yumushui/a ... -
centos6.5下yum安装mysql5.5和php5.6
2017-03-22 14:34 526http://www.cnblogs.com/SQL888/p ... -
Linux平台卸载MySQL和PHP
2017-03-22 13:58 387http://www.cnblogs.com/kerrycod ... -
分布式系统事务一致性解决方案
2017-03-19 22:37 426开篇 在OLTP系统领域, ...
相关推荐
存储过程是由一个或多个SQL语句组成的集合,存储在数据库中,可以像函数一样被调用执行。它们可以接受参数,返回结果,并且能够处理复杂逻辑,如条件判断和循环结构。在大型项目中,存储过程有助于减少网络传输,...
总的来说,Java通过JDBC调用MySQL存储过程涉及到连接数据库、创建`CallableStatement`、执行存储过程和处理结果。这使得开发者能够在Java应用中灵活地利用数据库提供的强大功能,实现更高效的数据处理。
- **EXECUTE** 权限:执行存储程序需要此权限,创建者自动获得此权限。 - **SQL SECURITY** 特性:默认为 **DEFINER**,这意味着执行存储程序的用户必须具有执行创建者的权限集。 #### 四、总结 存储程序为MySQL...
### MySQL导出存储过程详解 #### 一、背景与问题描述 在进行某学院网站部署的过程中,遇到一个错误:“FUNCTION config_get does not exist”。通过排查发现,错误出现在Java代码中的`conn.prepareCall("{call ...
相比于单条SQL语句,存储过程有以下优点:提高性能(因为编译只需要一次)、减少网络流量(因为只需发送调用存储过程的命令而非多条SQL)、增强安全性(可以控制对存储过程的访问权限)以及增加代码的可读性和可维护...
根据提供的文档信息,本文将深入解析《MySQL 5.0 存储过程》这一主题,重点探讨存储过程的概念、特点以及在 MySQL 5.0 中的应用。存储过程是数据库管理系统中一项重要的功能,它允许开发者编写可重用的 SQL 代码块,...
- **性能差异**:由于数据库引擎的不同,两者在执行存储过程时的性能也会有所不同。 **结论**:尽管如此,存储过程的核心理念——提高代码复用性、增强安全性以及提高执行效率,在两种数据库系统中都是相通的。根据...
5. **安全机制**:通过限制对存储过程的访问权限,可以间接控制对数据的访问,从而提高数据安全性。 #### 二、MySQL存储过程的引入 尽管MySQL早期版本(5.0之前)不支持存储过程,但自MySQL 5.0起,这一功能已经被...
3. **执行存储过程**:创建完存储过程后,通过`CALL`关键字来调用执行。 ```sql CALL 过程名(参数值, ...); ``` 4. **异常处理**:MySQL的存储过程中可以使用`DECLARE`声明变量和`BEGIN...END`块来处理异常。`...
- **安全性**:可以设定存储过程的执行权限,增强数据库的安全防护。 ### 编写存储过程的注意事项 - **风格和约定**:保持一致的编程风格和约定,如变量命名规则,可以使代码更易于理解和维护。 - **错误检查**:...
- **安全性**:通过权限控制,可以限制用户直接操作数据,只允许调用存储过程。 - **事务管理**:方便在存储过程中进行事务控制,确保数据一致性。 5. **存储过程的参数** - **IN参数**:传递给过程的输入值,...
通过`CALL`关键字来执行存储过程,如`CALL proc_name(value1, @var2);`。 4. **存储过程的优势**: - 提高性能:因为SQL语句被预编译,执行时只需解析一次。 - 数据安全性:可以通过权限控制限制对数据的直接...
MySQL存储过程(Stored Procedure)是一种复杂的数据库对象,允许用户将多个SQL语句组合成一个单一的执行单元,以提高数据库的性能和可维护性。下面是 MySQL 存储过程的相关知识点: 存储过程的定义和示例 存储...
4. **安全性增强**:通过存储过程可以实现更为精细的权限控制,确保只有授权用户才能访问特定的数据或执行特定的操作。 #### 六、存储过程的注意事项 - 在设计存储过程时,应考虑异常处理,确保当遇到错误时能够...
MySQL 存储过程和触发器详解 MySQL 存储过程是指一组为了完成特定功能的 SQL 语句集合。存储过程的优点包括: 1. 封装性:存储过程可以将多个 SQL 语句封装在一起,方便调用和维护。 2. 可增强 SQL 语句的功能和...
总的来说,MySQL存储过程是数据库开发中的强大工具,它们能够封装复杂的业务逻辑,提高代码复用性,减少网络流量,并提供更高的安全性,因为它们可以被限制只在特定的权限范围内执行。对于大型项目或需要大量数据...
存储过程中的权限设置可以保护数据安全,只允许拥有适当权限的用户执行特定的存储过程。 #### 12. 函数 在MySQL中,存储过程和函数是类似的编程结构,但函数必须返回一个值,而存储过程可以有输入输出参数,但不...
5. **安全机制强化:**系统管理员可控制存储过程的执行权限,进而限制数据访问,确保数据安全。 #### MySQL存储过程发展历程与应用 早期版本的MySQL(5.0前)并未支持存储过程,这一缺失限制了其在复杂应用领域的...