解决Ranger无法连接双主Mysql的问题
一、问题描述
报错信息
ERROR 1418 (HY000): 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)
问题分析
安装过程中,配置ranger元数据时,使用用双主的mysql,因为mysql打开了binlog,我们就必须为我们的function指定一个参数:
1 DETERMINISTIC 不确定的
2 NO SQL 没有SQl语句,当然也不会修改数据
3 READS SQL DATA 只是读取数据,当然也不会修改数据
4 MODIFIES SQL DATA 要修改数据
5 CONTAINS SQL 包含了SQL语句
二、解决方案
临时解决
SQL code
mysql> show variables like 'log_bin_trust_function_creators';
+---------------------------------+-------+
| Variable_name | Value |
+---------------------------------+-------+
| log_bin_trust_function_creators | OFF |
+---------------------------------+-------+
mysql> set global log_bin_trust_function_creators=1;
mysql> show variables like 'log_bin_trust_function_creators';
+---------------------------------+-------+
| Variable_name | Value |
+---------------------------------+-------+
| log_bin_trust_function_creators | ON |
msql中执行:log_bin_trust_function_creators=1
但是mysql重启之后,就会失效。
永久解决
修改mysql配置文件my.cnf
一般的路径是:/etc/my.cnf
添加如下配置
log-bin-trust-function-creators=1
重启mysql服务。
问题解决。