萬盛學電腦網

 萬盛學電腦網 >> 數據庫 >> mysql教程 >> MySQL創建函數報“ERROR 1418 ”錯誤,不能創建函數

MySQL創建函數報“ERROR 1418 ”錯誤,不能創建函數

MySQL創建函數報ERROR 1418錯誤,不能創建函數,根據官方提示是說,不能創建函數可能是一個安全設置方面的配置或功能未開啟原因,下面我們一起來看。

錯誤

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)
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)


分析:

MySQL函數不能創建,是未開啟功能。

根據系統提示,導致該錯誤的原因可能是一個安全設置方面的配置,查手冊log_bin_trust_function_creators參數缺省0,是不允許function的同步的,一般我們在配置repliaction的時候,都忘記關注這個參數,這樣在master更新funtion後,slave就會報告錯誤,然後slave stoped。
處理過程:

解決方法:MySQL函數不能創建,是未開啟功能:

 代碼如下 復制代碼

mysql> show variables like ‘%func%’;
+———————————+——-+
| Variable_name | Value |
+———————————+——-+
| log_bin_trust_function_creators | OFF |
+———————————+——-+
1 row in set (0.00 sec)

mysql> set global log_bin_trust_function_creators=1;
Query OK, 0 rows affected (0.00 sec)

mysql> show variables like ‘%func%’;
+———————————+——-+
| Variable_name                            | Value   |
+———————————+——-+
| log_bin_trust_function_creators  | ON |
+———————————+——-+
1 row in set (0.00 sec)mysql>

如果上方法不能成功解決mysql中的ERROR 1418錯誤,那還得請你使用下面方法試試:

第一步: mysql> SET GLOBAL log_bin_trust_function_creators = 1;

第二步: 系統啟動時 –log-bin-trust-function-creators=1

第三步: 在my.ini(Linux下為my.conf)文件中 [mysqld] 標記後加一行內容為 log-bin-trust-function-creators=1

copyright © 萬盛學電腦網 all rights reserved