解決mysql報錯This function has none of DETERMINISTIC問題

本篇文章給大家介紹一下mysql 報錯this function has none of deterministic解決方案。有一定的參考價值,有需要的朋友可以參考一下,希望對大家有所幫助。

本文向朋友們介紹開啟bin-log日志mysql報錯:This function has none of DETERMINISTIC, NO SQL解決辦法,

創建存儲過程時

出錯信息:

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)

原因:

這是我們開啟了bin-log, 我們就必須指定我們的函數是否是

1?DETERMINISTIC?不確定的 2?NO?SQL?沒有SQl語句,當然也不會修改數據 3?READS?SQL?DATA?只是讀取數據,當然也不會修改數據 4?MODIFIES?SQL?DATA?要修改數據 5?CONTAINS?SQL?包含了SQL語句

其中在function里面,只有 DETERMINISTIC, NO SQL 和 READS SQL DATA 被支持。如果我們開啟了 bin-log, 我們就必須為我們的function指定一個參數。

解決方法:

SQL?code mysql>?show?variables?like?'log_bin_trust_function_creators'; +---------------------------------+-------+ |?Variable_name??????????|?Value?| +---------------------------------+-------+ |?log_bin_trust_function_creators?|?OFF??| +---------------------------------+-------+ mysql>?set?global?log_bin_trust_function_creators=1; mysql>?show?variables?like?'log_bin_trust_function_creators'; +---------------------------------+-------+ |?Variable_name??????????|?Value?| +---------------------------------+-------+ |?log_bin_trust_function_creators?|?ON??|

這樣添加了參數以后,如果mysqld重啟,那個參數又會消失,因此記得在my.cnf配置文件中添加:

log_bin_trust_function_creators=1

推薦:《mysql視頻教程

以上就是解決

? 版權聲明
THE END
喜歡就支持一下吧
點贊5 分享