Apa gunanya log_bin_trust_function_creators
? Juga, Apakah nilai parameternya dinamis? Apakah akan berubah jika saya me-restart layanan MySQL saya?
sumber
Apa gunanya log_bin_trust_function_creators
? Juga, Apakah nilai parameternya dinamis? Apakah akan berubah jika saya me-restart layanan MySQL saya?
Variabel ini mengontrol apakah pencatatan biner harus memercayai pencipta fungsi yang disimpan untuk tidak membuat fungsi tersimpan yang akan menyebabkan peristiwa yang tidak aman. Misalnya. memiliki fungsi UUID.
Ini telah dijelaskan dengan baik dalam dokumentasi:
Ketika Anda membuat fungsi tersimpan, Anda harus menyatakan bahwa itu bersifat deterministik atau tidak mengubah data. Kalau tidak, mungkin tidak aman untuk pemulihan atau replikasi data.
Secara default, agar pernyataan FUNGSI CREATE diterima, setidaknya satu dari DETERMINISTIC, NO SQL, atau READS SQL DATA harus ditentukan secara eksplisit. Kalau tidak, akan terjadi kesalahan:
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)
Untuk mengendurkan kondisi sebelumnya pada pembuatan fungsi (bahwa Anda harus memiliki hak SUPER dan bahwa suatu fungsi harus dinyatakan deterministik atau untuk tidak mengubah data), atur variabel sistem log_bin_trust_function_creators global ke 1.
Referensi: dokumentasi mysql (baca ini sebagaimana dijelaskan dengan contoh.)
Tentang pertanyaan kedua Anda, apakah itu dinamis dan apakah akan berubah jika Anda me-restart server:
Ya itu adalah variabel dinamis.
Variabel akan berubah saat restart, jika Anda tidak memperbarui konfigurasi untuk mencerminkan perubahan.
Referensi: dokumentasi mysql-lagi
mysql> select if(1 is true,'TRUE','FALSE')\G *************************** 1. row *************************** if(1 is true,'TRUE','FALSE'): TRUE