You do not have the SUPER privilege and binary logging is enabled

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

庭院深深深几许?杨柳堆烟,帘幕无重数。
玉勒雕鞍游冶处,楼高不见章台路。
雨横风狂三月暮。门掩黄昏,无计留春住。
泪眼问花花不语,乱红飞过秋千去。

欧阳修

付款二维码

如果感觉对您有帮助
欢迎向作者提供捐赠
这将是创作的最大动力