首页 > 数据库 > MySQL > 正文

mysql怎样修改definer

2024-07-24 12:32:57
字体:
来源:转载
供稿:网友
  这篇文章主要介绍“mysql如何修改definer”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“mysql如何修改definer”文章能帮助大家解决问题。
 
  修改方法:1、利用“update mysql.proc set definer=...”修改function的definer;2、利用“update mysql.EVENT set definer=...”修改event的definer。
 
  本教程操作环境:windows10系统、mysql8.0.22版本、Dell G3电脑。
 
  1.修改function、procedure的definer
 
  select definer from mysql.proc;  -- 函数、存储过程
 
  update mysql.proc set definer=‘user@localhost‘; -- 如果有限定库或其它可以加上where条件
 
  2.修改view的definer
 
  相比function的修改麻烦点:
 
  select DEFINER from information_schema.VIEWS;
 
  select concat("alter DEFINER=`user`@`localhost` SQL SECURITY DEFINER VIEW ",TABLE_SCHEMA,".",TABLE_NAME," as ",VIEW_DEFINITION,";") from information_schema.VIEWS where DEFINER<>‘user@localhost‘;
 
  查询出来的语句再执行一遍就好了。
 
  3.修改event的definer
 
  select DEFINER from mysql.EVENT; -- 定时事件
 
  update mysql.EVENT set definer=‘ user@localhost ‘;

  4.修改trigger的definer
 
  目前还没有具体方便的方法,可以借助工具端如HeidiSQL、sqlyog等来一个个修改。注意改前有必要锁表,因为如果改的过程中有其它表改变而触发,会造成数据不一致。
 
  关于“mysql如何修改definer”的内容就介绍到这里了,感谢大家的阅读。
 

(编辑:武林网)

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表