Какая польза от log_bin_trust_function_creators
? Кроме того, является ли значение параметра динамическим? Изменится ли он, если я перезапущу свой MySQL сервис?
источник
Какая польза от log_bin_trust_function_creators
? Кроме того, является ли значение параметра динамическим? Изменится ли он, если я перезапущу свой MySQL сервис?
Эта переменная определяет, должно ли двоичное ведение журнала доверять создателям хранимых функций, чтобы они не создавали хранимые функции, которые будут вызывать небезопасные события. Например. имея функции 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-документация (прочитайте, как это объясняется на примере.)
О вашем втором вопросе, если он динамический и изменится ли он при перезагрузке сервера:
Да, это динамическая переменная.
Переменная изменится при перезапуске, если вы не обновите конфигурацию, чтобы отразить изменение.
Ссылка: mysql-Документация-снова
mysql> select if(1 is true,'TRUE','FALSE')\G *************************** 1. row *************************** if(1 is true,'TRUE','FALSE'): TRUE