加入收藏 | 设为首页 | 会员中心 | 我要投稿 衡阳站长网 (https://www.0734zz.cn/)- 数据集成、设备管理、备份、数据加密、智能搜索!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

mysql怎样修改definer

发布时间:2022-06-12 08:16:13 所属栏目:MySql教程 来源:互联网
导读:这篇文章主要介绍mysql如何修改definer的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇mysql如何修改definer文章能帮助大家解决问题。 修改方法:1、利用update mysql.proc set definer=...修改function的definer;2
  这篇文章主要介绍“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”的内容就介绍到这里了,感谢大家的阅读。
 

(编辑:衡阳站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读