虽然很多朋友是在创建mysql函数时提示ERROR 1418错误,但我今天是在导入sql时也提示了ERROR 1418,这个是因为导入的sql中就有创建函数的一些语句了,其实与创建没什么区别.
在将sql导入到mysql时候出现以下错误:
ERROR 1418 (HY000) at line 8752: This function has none of DETERMINISTIC, NO SQL, or READS SQL DATA in its declaration and binary logging is enabled (you *might* want to use the less safe log_bin_trust_function_creators variable)
经查,发现以下mysql官方文档:http://dev.mysql.com/doc/refman/5.0/en/stored-programs-logging.html
必须设置,代码如下:
global log_bin_trust_function_creatorssystem variable to 1.
mysql> SET GLOBAL log_bin_trust_function_creators = 1;
在my.ini(linux下为my.conf)文件中 [mysqld] 标记后加一行内容为 log-bin-trust-function-creators,
如果在create function的时候有 1418的错语的时候:那么只需要执行set gl在创建子程序(存储过程、函数、触发器)时,声明为DETERMINISTIC或NO SQL与READS SQL DATA中的一个,例如,代码如下:
- CREATEDEFINER=CURRENT_USERPROCEDURE`NewProc`()
- DETERMINISTIC
- BEGIN
- #Routinebodygoeshere...
- END;//开源软件:phpfensi.com
- oballog_bin_trust_routine_creators=1;