1418: Function has none of DETERMINISTIC, NO SQL, or READS SQL DATA (binary logging enabled) (la fonction n'a ni DETERMINISTIC, ni NO SQL, ni READS SQL DATA ; journalisation binaire activée)
MySQLQue signifie cette erreur ?
Une fonction stockée était en cours de création, mais la journalisation binaire est activée et la fonction n'est déclarée avec aucune des caractéristiques de déterminisme/d'accès aux données. MySQL refuse une telle fonction car elle est ambiguë du point de vue de la sûreté de la réplication.
Cause
La fonction a été définie sans les caractéristiques DETERMINISTIC, NO SQL ou READS SQL DATA alors que log_bin vaut ON et log_bin_trust_function_creators=OFF. Sans ces caractéristiques, MySQL ne peut pas être sûr que la fonction produit le même résultat sur le réplica.
Comment la corriger
Déclarez le comportement de la fonction avec les bonnes caractéristiques : ajoutez DETERMINISTIC si elle est réellement déterministe, NO SQL si elle n'accède pas aux données, READS SQL DATA si elle ne fait que lire. Si vous êtes sûr que les fonctions sont sans risque, vous pouvez définir log_bin_trust_function_creators=1 comme politique centrale ; toutefois, déclarer correctement la caractéristique est l'approche la plus sûre. Assurez-vous que la caractéristique correspond au comportement réel de la fonction.
Autres entrées pour ce moteur
- 1785Statement violates GTID consistency (l'instruction viole la cohérence GTID)
- 3024Query execution was interrupted, maximum statement execution time exceeded (exécution de la requête interrompue : durée maximale d'exécution dépassée)
- 1298Unknown or incorrect time zone
- 1231Variable can't be set to the value of ...