log_bin_trust_function_creators 这个是MySQL的一个内置变量,从字面来说就是在binlog开启的状态下,系统需要信任生成函数,毕竟函数可以做得事情太多啦,系统默认在binlog开启的时候是关闭生成函数的使用的,万一,某天需要通过binlog日志回滚,而所有事务里就带有某些损害系统的函数,后果可能是灾难性的,因此,有这么一个变量。

好了,废话不多说,有临时设置log_bin_trust_function_creators和永久设置log_bin_trust_function_creators两种方法(其余的MySQL变量也是这么一个套路的,基本没什么区别,临时或者永久设置)

一,查看log_bin_trust_function_creators这个变量的值

show variables like 'log_bin_trust_function_creators';

输出如下:

 

如果这个log_bin_trust_function_creators的值是off,那么,此时将不能执行生产函数,值为on的时候可以执行生产函数。

二,临时设置MySQL的变量的值

进入MySQL的命令行,执行 set指令,格式为  set  变量名=变量值 即可。

本例中为   set global log_bin_trust_function_creators=1;:

mysql> set log_bin_trust_function_creators=1
    -> ;
1229 - Variable 'log_bin_trust_function_creators' is a GLOBAL variable and should be set with SET GLOBAL
mysql> set global log_bin_trust_function_creators=1;
Query OK, 0 rows affected (0.00 sec)

上面说的是,log_bin_trust_function_creators这个变量是一个全局变量,因此,重新设置的时候需要加 global。 重启服务后此变量的变量值将会变为off。

三,永久设置MySQL的变量的值

log_bin_trust_function_creators这个变量和变量值 直接写入MySQL的主配置文件 my.cnf 即可。1代表on,0代表off

log_bin_trust_function_creators=1

写入配置文件的变量和变量值不会随服务重启而失效,是永久有效的。

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐