ERROR 1418 (HY000): This function has none of DETERMINISTIC, NO SQL, or READS SQL DATA in its declaration and binary logging is enabled. – MySQL 1418

1418

La creazione di una Stored Function con il log binario (`log_bin`) abilitato richiede obbligatoriamente la dichiarazione di determinismo (`DETERMINISTIC`) o l'abilitazione del parametro `log_bin_trust_function_creators=1`.

Cosa significa questo errore?

La creazione di una Stored Function con il log binario (`log_bin`) abilitato richiede obbligatoriamente la dichiarazione di determinismo (`DETERMINISTIC`) o l'abilitazione del parametro `log_bin_trust_function_creators=1`.

Messaggio originale

ERROR 1418 (HY000): This function has none of DETERMINISTIC, NO SQL, or READS SQL DATA in its declaration and binary logging is enabled.

Contesto e parole chiave

Alias

  • 1418
  • ER_BINLOG_UNSAFE_ROUTINE

Messaggi alternativi

  • funzione priva di attributo DETERMINISTIC logging binario attivo

Prodotti

  • MySQL Server / Percona Server / MariaDB / InnoDB Engine

Piattaforme

  • Linux
  • macOS
  • Multipiattaforma
  • Windows Server

Parole chiave

  • 1418
  • database
  • errore-mysql-1418-binary-logging-unsafe-routine
  • innodb
  • mysql
  • mysql.sql.1418-binlog-unsafe-routine
  • Replicazione e Cluster

Cause possibili

Origine del problema per MySQL: Errore 1418 — funzione non marcata come DETERMINISTIC con binlog attivo

La creazione di una Stored Function con il log binario (`log_bin`) abilitato richiede obbligatoriamente la dichiarazione di determinismo (`DETERMINISTIC`) o l'abilitazione del parametro `log_bin_trust_function_creators=1`.

molto comune

Diagnosi

Ispezione diagnostica MySQL per MySQL: Errore 1418 — funzione non marcata come DETERMINISTIC con binlog attivo

Eseguire comandi di controllo di stato nel client MySQL o consultare il file di log degli errori /var/log/mysql/error.log.

Come leggere il risultato. Mostra lo stato interno di lock, transazioni in corso o errori di allocazione e vincoli relazionali.

mysql
SHOW ENGINE INNODB STATUS\G

Risoluzione

Procedura di risoluzione per MySQL: Errore 1418 — funzione non marcata come DETERMINISTIC con binlog attivo

Difficoltà: mediaRischio: basso

Applicare la correzione al database o alla query secondo le best practice di amministrazione MySQL.

  1. Ispezionare la sintassi della query o la configurazione delle variabili
  2. Regolare i parametri in my.cnf o correggere i vincoli DDL
  3. Testare nuovamente la connessione o l'esecuzione della transazione

Domande frequenti

Come risolvere il codice 1418 in MySQL?

La creazione di una Stored Function con il log binario (`log_bin`) abilitato richiede obbligatoriamente la dichiarazione di determinismo (`DETERMINISTIC`) o l'abilitazione del parametro `log_bin_trust_function_creators=1`.

Approfondimenti

Schede correlate