2021-02-24 乐帮网
mysql笔记 mysql
在将函数或触发器导入MySQL数据库时,会出现以下错误:“您没有SUPER特权,并且启用了二进制日志记录(您*可能*想要使用不太安全的log_bin_trust_function_creators变量)”。
英文版本错误信息如下:
You do not have the SUPER privilege and binary logging is enabled (you *might* want to use the less safe log_bin_trust_function_creators variable)
引起这个错误的原因是权限不够或者说是为了保证安全所做的限制,我本地的数据库是8.0 ,下面说一下怎么解决:
在linux系统中找到mysql的配置文件例如我的是/etc/my.cnf,在[mysqld]部分加上:log_bin_trust_function_creators=1;
如果是在windows系统中,就在在my.ini文件中的[mysqld]部分加上:log_bin_trust_function_creators=1;
完成后重启数据库就可以了。
但是一般情况下我们不充许重新数据库,可以用root用户登录数据库执行命令:
set global log_bin_trust_function_creators=1;
然后再修改我们的函数或者触发器,这个在下次重启后就会失去权限。如果只是一次性修改触发器或者函数的话可以用这个办法。
另外说一下这个SUPER privilege,它包含如下权限 :CREATE ROUTINE, ALTER ROUTINE, CREATE TRIGGER, ALTER TRIGGER, CREATE FUNCTION and ALTER FUNCTION
一个典型的授权语句如下:
GRANT CREATE ROUTINE,ALTER ROUTINE,TRIGGER ON `tachographs`.* TO 'Tachographs'@'%';
但这还不足以解决我们的错误。
主要参考文档:https://dev.mysql.com/doc/refman/8.0/en/stored-programs-logging.html
关注我的微信公众号
在公众号里留言交流
投稿邮箱:1052839972@qq.com
庭院深深深几许?杨柳堆烟,帘幕无重数。
玉勒雕鞍游冶处,楼高不见章台路。
雨横风狂三月暮。门掩黄昏,无计留春住。
泪眼问花花不语,乱红飞过秋千去。
如果感觉对您有帮助
欢迎向作者提供捐赠
这将是创作的最大动力