本篇文章給大家介紹一下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
喜歡就支持一下吧
相關推薦