报错原因
在将函数或触发器导入MySQL数据库时,会出现以下错误:“您没有SUPER特权,并且启用了二进制日志记录(您*可能*想要使用不太安全的log_bin_trust_function_creators变量)”。
解决方案
有几种解决方法:
-
您需要为运行导入数据库的用户指定SUPER特权,并应用CREATE ROUTINE,ALTER ROUTINE,CREATE TRIGGER,ALTER TRIGGER,CREATE FUNCTION和ALTER FUNCTION特权;
-
如果要允许具有CREATE ROUTINE特权的MySQL服务器上的所有用户都可以创建此类功能,则可以通过两种方式指定log_bin_trust_function_creators选项:
-
通过在服务器启动时指定它,例如:-- log-bin-trust-function-creators = 1
-
通过SET GLOBAL语句将其设置为1 ,例如:
-
mysql> SET GLOBAL log_bin_trust_function_creators = 1;
-
如果您不打算使用MySQL服务器进行复制,请考虑通过从启动MySQL服务器的mysqld实用程序的命令选项中删除选项--log-bin来关闭二进制日志记录。