Попробуй сначала выполнить:
а после выполнения твоего sql выполнить:
Такая же ошибка.
root@localhost [db]> DROP FUNCTION IF EXISTS strSplit;
Query OK, 0 rows affected (0.02 sec)
root@localhost [db]> DELIMITER $$
root@localhost [db]> CREATE FUNCTION strSplit(x MEDIUMTEXT, delim MEDIUMTEXT, pos int) RETURNS MEDIUMTEXT
-> RETURN
-> TRIM(BOTH '\r' FROM TRIM(
-> REPLACE(SUBSTRING(SUBSTRING_INDEX(x, delim, pos), LENGTH(SUBSTRING_INDEX(x, delim, pos - 1)) + 1), delim, '')
-> ));
->
-> $$
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)
root@localhost [db]> DELIMITER ;
Относительно работает если явно указать что это DETERMINISTIC например, но я не знаю насколько правильно так делать для этой функции.
DROP FUNCTION IF EXISTS strSplit;
CREATE FUNCTION strSplit(x MEDIUMTEXT, delim MEDIUMTEXT, pos int) RETURNS MEDIUMTEXT
DETERMINISTIC
RETURN
TRIM(BOTH '\r' FROM TRIM(
REPLACE(SUBSTRING(SUBSTRING_INDEX(x, delim, pos), LENGTH(SUBSTRING_INDEX(x, delim, pos - 1)) + 1), delim, '')
));
Ну и функция не то чтобы прямо моя, взята отсюда
http://nodeny.com.ua/wiki/index.php/Radius_%D0%B0%D1%82%D1%80%D0%B8%D0%B1%D1%83%D1%82%D1%8B