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
写入配置文件的变量和变量值不会随服务重启而失效,是永久有效的。
|