首页 > 数据库 > mysql教程 > mysql怎么修改definer

mysql怎么修改definer

WBOY
发布: 2022-05-19 17:30:46
原创
2974 人浏览过

修改方法:1、利用“update mysql.proc set definer=...”修改function的definer;2、利用“update mysql.EVENT set definer=...”修改event的definer。

mysql怎么修改definer

本教程操作环境:windows10系统、mysql8.0.22版本、Dell G3电脑。

mysql怎么修改definer

1.修改function、procedure的definer

select definer from mysql.proc;  -- 函数、存储过程
update mysql.proc set definer=‘user@localhost‘; -- 如果有限定库或其它可以加上where条件
登录后复制

2.修改event的definer

select DEFINER from mysql.EVENT; -- 定时事件
update mysql.EVENT set definer=‘ user@localhost ‘;
登录后复制

3.修改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‘;
登录后复制

查询出来的语句再执行一遍就好了。

4.修改trigger的definer

目前还没有具体方便的方法,可以借助工具端如HeidiSQL、sqlyog等来一个个修改。注意改前有必要锁表,因为如果改的过程中有其它表改变而触发,会造成数据不一致。

推荐学习:mysql视频教程

以上是mysql怎么修改definer的详细内容。更多信息请关注PHP中文网其他相关文章!

相关标签:
来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板