При попытке создать пользовательскую функцию в MySQL 8.0 возникает ошибка 1418. На сервере MySQL 5.6 создается без проблем. Почему?
Собственно, ответ на ваш вопрос заключён в тексте ошибки.
Вы используете бинарные логи, которые содержат только последовательность выполняемых запросов. Поскольку ваша функция не детерминирована, она при каждом следующем вызове из одного и того же состояния может вернуть разные значения, соответственно MySQL не может гарантировать точную репликацию и/или восстановление данных из бинарного лога.
https://dev.mysql.com/doc/refman/5.7/en/stored-pro...
попробуйте добавить log_bin_trust_function_creators = 1;reed this