Utilizzo di log_bin_trust_function_creators in MySQL


Risposte:


12

Questa variabile controlla se la registrazione binaria deve fidarsi dei creatori di funzioni memorizzate per non creare funzioni memorizzate che causeranno eventi non sicuri. Per esempio. con funzioni UUID.

Questo è stato spiegato bene nella documentazione:

Quando si crea una funzione memorizzata, è necessario dichiarare che è deterministica o che non modifica i dati. Altrimenti, potrebbe non essere sicuro per il recupero o la replica dei dati.

Per impostazione predefinita, per accettare un'istruzione CREATE FUNCTION, è necessario specificare esplicitamente almeno uno dei DETERMINISTIC, NO SQL o READS SQL DATA. Altrimenti si verifica un errore:

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)

Per allentare le condizioni precedenti sulla creazione della funzione (che è necessario disporre del privilegio SUPER e che una funzione deve essere dichiarata deterministica o non modificare i dati), impostare la variabile di sistema globale log_bin_trust_function_creators su 1.

Riferimento: documentazione mysql (leggi questo come spiega con l'esempio.)

Informazioni sulla seconda domanda, se è dinamica e cambierà se riavvii il server:

  • Sì, è una variabile dinamica.

  • La variabile cambierà al riavvio, se non si aggiorna la configurazione per riflettere la modifica.

Riferimento: mysql-documentazione-di nuovo


ci vuole un valore booleano? Giusto, è impostato su TRUE per me. Significa che è "1"?
tesla747,

mysql> select if(1 is true,'TRUE','FALSE')\G *************************** 1. row *************************** if(1 is true,'TRUE','FALSE'): TRUE
mysql_user,

Ok lo capisco. Ma è necessario cambiarlo in '1' in particolare per quel parametro? Da quando l'ho impostato come VERO, quando riavvio il servizio mysql cambierà di nuovo
tesla747,

1
Giusto! Quindi, per renderlo persistente, dovresti inserire lo stesso valore di configurazione anche nel tuo file my.cnf.
mysql_user

1
@ tesla747 yep ... si applica quando è abilitata la registrazione binaria.
mysql_user
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.