文档章节

mysql执行存储过程中报权限不足的错误解决方法

李忘生
 李忘生
发布于 2015/05/08 11:37
字数 320
阅读 22
收藏 0

由于对mysql了解不够透彻,导致对definer问题查了好久才解决问题
记录自己的一些理解!
问题描述:
在数据库写,为一个表写了一个触发器,此触发器调用一个存储过程;由公司写的一个c程序自动往该表写入数据,通过触发器转换成业务相关数据;同过root@localhost连接数据库,但提示192.168.2.%不存在
问题查找:
登录数据库,show procedure status\G 发现procedure的definer都是root@192.168.2.%
问题解决:
方法一:修改存储过程的definer
       update mysql.proc set definer='root@localhost ' where db='db_name';
方法二:修改sql security
       sql secuirty的值决定了调用存储过程的方式,取值 :definer或者invoker
       definer:在执行存储过程前验证definer对应的用户如:root@192.168.2.%是否存在,以及是否具有执行存储过程的权限,若没有则报错
        invoker:在执行存储过程时判断inovker即调用该存储过程的用户是否有相应权限,若没有则报错。
       修改语法:
        alter procedure pro_name sql security invoker;

ps: 在创建时指定sql security 
    create procedure pro_name(params....)
    sql security definer|invoker
    begin
     .....
    end;

© 著作权归作者所有

共有 人打赏支持
李忘生
粉丝 6
博文 23
码字总数 21293
作品 0
朝阳
MySQL数据库“十宗罪”(十大经典错误案例)

各位技术老铁们,福利来了!今天给大家说说《数据库中十大经典错误案例》 老张我在刚开始学习数据库的时候,没少走弯路。经常会遇到各种稀奇古怪的 error 信息,遇到报错会很慌张,急需一个解...

superZS
2017/07/20
0
0
CentOS下mysql更改数据存放目录

1、首先我们需要关闭MySQL,命令如下: service mysqld stop 2、然后是转移数据 为了安全期间,我们采用复制命令cp,先找到mysql的原目录 cd /var/lib ls 运行这个命令之后就会看到mysql的目...

不语者
2016/11/24
74
0
centos下mysql启动失败的问题总结

今儿清理服务器上的废弃文件,不知道动了mysql的什么文件,重启mysql进程时提示: Starting MySQL.. ERROR! The server quit without updating PID file (/var/lib/l/JJonline.pid). 就抓狂了...

别处
2016/05/28
144
0
mysql数据库存储中文数据的解决办法

我在学习django中admin模块的时候,登录进入后台操作页面,输入中文数据,但保存之后全是乱码(全是“????????????”),然后就开始了解决问题之路。   1、首先百度搜索,最主流...

孟飞阳
2016/07/11
20
0
MySQL 常见问题和应用技巧

一、 忘记 MySQL 的 root 密码 1. 登录到数据库所在的服务器,手工 kill 掉 mysql 进程。 (1) 登录到数据库所在的服务器,手工 kill 掉 MySQL 进程: 其中,mysql.pid 指的是 MySQL 数据目录...

waterandair
2017/11/20
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

docker中安装了RabbitMQ后无法访问其Web管理页面

在官网找了"$ docker run -d --hostname my-rabbit --name some-rabbit -p 8080:15672 rabbitmq:3-management"这条安装命令,在docker上安装了RabbitMQ,,结果输入http://localhost:8080并不......

钟然千落
32分钟前
0
0
spring-cloud | 分布式session共享

写在前面的话 各位小伙伴,你们有福了,这一节不仅教大家怎么实现分布式session的问题,还用kotlin开发,喜欢kotlin的小伙伴是不是很开心! 以前在写Android的时候,就对客户端请求有一定的认...

冯文议
52分钟前
0
0
c语言之内存分配笔记

先看一个数组: short array[5] = {1,2} // 这儿定义的一个int类型的数组,数组第1和第2个元素值是1和2.其余后面默认会给值为0; 或者 short array[] = {1,2};//这儿数组第1和第2个元素,数组...

DannyCoder
今天
4
0
Shell | linux安装包不用选择Y/N的方法

apt-get install -y packageOR echo "y" | sudo apt-get install package

云迹
今天
2
0
Hadoop的大数据生态圈

基于Hadoop的大数据的产品圈 大数据产品的一句话概括 Apache Hadoop: 是Apache开源组织的一个分布式计算开源框架,提供了一个分布式文件系统子项目(HDFS)和支持MapReduce分布式计算的软件架...

zimingforever
今天
7
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部