Câu trả lời:
Biến này kiểm soát việc ghi nhật ký nhị phân có nên tin tưởng người tạo chức năng được lưu trữ không tạo các hàm được lưu trữ sẽ gây ra các sự kiện không an toàn. Ví dụ. có chức năng UUID.
Điều này đã được giải thích tốt trong tài liệu:
Khi bạn tạo một hàm được lưu trữ, bạn phải khai báo rằng nó có tính xác định hoặc nó không sửa đổi dữ liệu. Mặt khác, nó có thể không an toàn để phục hồi hoặc sao chép dữ liệu.
Theo mặc định, để một câu lệnh TẠO CHỨC NĂNG được chấp nhận, ít nhất một trong các DỮ LIỆU XÁC ĐỊNH, KHÔNG CÓ SQL hoặc READS phải được chỉ định rõ ràng. Nếu không, sẽ xảy ra lỗi:
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)
Để thư giãn các điều kiện trước khi tạo chức năng (rằng bạn phải có đặc quyền SUPER và hàm phải được khai báo xác định hoặc không sửa đổi dữ liệu), đặt biến hệ thống log_bin_trust_feft_creators toàn cầu thành 1.
Tham khảo: tài liệu mysql (đọc phần này như nó giải thích với ví dụ.)
Về câu hỏi thứ hai của bạn, nếu nó động và nó sẽ thay đổi nếu bạn khởi động lại máy chủ:
Có nó là một biến động.
Biến sẽ thay đổi khi khởi động lại, nếu bạn không cập nhật cấu hình để phản ánh thay đổi.
Tham khảo: mysql-document-again
mysql> select if(1 is true,'TRUE','FALSE')\G *************************** 1. row *************************** if(1 is true,'TRUE','FALSE'): TRUE