zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    如何查看IIS版本
    11.Vue安装Axios及使用
    11.Vue安装Axios及使用
    解决vuex刷新页面就恢复初始化的方法之一
    解决vuex刷新页面就恢复初始化的方法之一
    从零开始学 Web 之 Vue.js(四)Vue的Ajax请求和跨域
    从零开始学 Web 之 Vue.js(四)Vue的Ajax请求和跨域
    vue $http请求服务
    vue项目打包后字体文件路径出错的解决办法
    类和对象系列教材 (六)- Java中的传参祥解
  • 原文地址:https://www.cnblogs.com/suke99/p/5908346.html
Copyright © 2011-2022 走看看