답변:
이 변수는 안전하지 않은 이벤트를 유발하는 저장된 함수를 작성하지 않도록 바이너리 로깅이 저장된 함수 작성자를 신뢰해야하는지 여부를 제어합니다. 예 : UUID 기능이 있습니다.
이것은 문서에서 잘 설명되었습니다.
저장 함수를 작성할 때 결정적이거나 데이터를 수정하지 않음을 선언해야합니다. 그렇지 않으면 데이터 복구 또는 복제에 안전하지 않을 수 있습니다.
CREATE FUNCTION 문을 승인하려면 기본적으로 DETERMINISTIC, NO SQL 또는 READS SQL DATA 중 하나 이상을 명시 적으로 지정해야합니다. 그렇지 않으면 오류가 발생합니다.
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)
함수 작성시 이전 조건을 완화하려면 (SUPER 특권이 있어야하고 함수를 결정 론적으로 선언하거나 데이터를 수정하지 않아야 함) 글로벌 log_bin_trust_function_creators 시스템 변수를 1로 설정하십시오.
참조 : mysql-documentation (예제와 같이 설명하십시오.)
두 번째 질문은 동적이며 서버를 다시 시작하면 변경됩니다.
예, 동적 변수입니다.
변경 사항을 반영하도록 구성을 업데이트하지 않으면 변수는 다시 시작할 때 변경됩니다.
mysql> select if(1 is true,'TRUE','FALSE')\G *************************** 1. row *************************** if(1 is true,'TRUE','FALSE'): TRUE