1418: Function has none of DETERMINISTIC, NO SQL, or READS SQL DATA (binary logging enabled)
MySQLNe demek?
Bir saklı fonksiyon (stored function) oluşturulmaya çalışıldı ancak binary logging etkin ve bu fonksiyon determinizm/veri erişim özelliklerinden hiçbiriyle işaretlenmemiş. MySQL, replikasyon güvenliği açısından belirsiz olan böyle bir fonksiyonu reddediyor.
Neden olur?
log_bin açıkken ve log_bin_trust_function_creators=OFF iken, DETERMINISTIC, NO SQL veya READS SQL DATA nitelikleri belirtilmeden fonksiyon tanımlandı. Bu nitelikler olmadan MySQL, fonksiyonun replikada aynı sonucu üretip üretmeyeceğinden emin olamaz.
Nasıl çözülür?
Fonksiyonun davranışını doğru niteliklerle bildirin: gerçekten deterministikse DETERMINISTIC, veri okumuyorsa NO SQL, yalnızca okuyorsa READS SQL DATA ekleyin. Fonksiyonların güvenli olduğuna eminseniz ve merkezi bir politika olarak log_bin_trust_function_creators=1 ayarlayabilirsiniz; ancak niteliği doğru bildirmek en güvenli yoldur. Niteliğin fonksiyonun gerçek davranışıyla uyumlu olmasına dikkat edin.