zoukankan      html  css  js  c++  java
  • mysql 创建函数 error Code: 1227. Access denied;

    mysql>   show function status;
    +------+------------------+----------+------------+---------------------+---------------------+---------------+---------+----------------------+----------------------+--------------------+
    | Db   | Name             | Type     | Definer    | Modified            | Created             | Security_type | Comment | character_set_client | collation_connection | Database Collation |
    +------+------------------+----------+------------+---------------------+---------------------+---------------+---------+----------------------+----------------------+--------------------+
    | zjzc | loadTreeByParent | FUNCTION | zjzc_app@% | 2016-06-02 21:51:04 | 2016-06-02 21:51:04 | DEFINER       |         | utf8                 | utf8_general_ci      | utf8_general_ci    |
    +------+------------------+----------+------------+---------------------+---------------------+---------------+---------+----------------------+----------------------+--------------------+
    1 row in set (0.00 sec)
    
    
    重新创建函数;
    
    delimiter $$   
    CREATE  FUNCTION `loadTreeByParent`(begin_sn INT) RETURNS varchar(600) CHARSET utf8  
    BEGIN   
        DECLARE rest VARCHAR(600);  
        DECLARE temp VARCHAR(60);  
        SET rest='$';  
        SET temp=CAST(begin_sn AS CHAR);      
        WHILE temp IS NOT NULL DO  
            SET rest=CONCAT(rest,',',temp);  
            SELECT GROUP_CONCAT(sn) INTO temp FROM ClientManager WHERE FIND_IN_SET(parent,temp)>0;  
        END WHILE;  
        RETURN rest;  
    END$$ 
    
    
    mysql> show function status;
    +------+------------------+----------+---------+---------------------+---------------------+---------------+---------+----------------------+----------------------+--------------------+
    | Db   | Name             | Type     | Definer | Modified            | Created             | Security_type | Comment | character_set_client | collation_connection | Database Collation |
    +------+------------------+----------+---------+---------------------+---------------------+---------------+---------+----------------------+----------------------+--------------------+
    | zjzc | loadTreeByParent | FUNCTION | root@%  | 2016-06-03 19:04:41 | 2016-06-03 19:04:41 | DEFINER       |         | utf8                 | utf8_general_ci      | utf8_general_ci    |
    +------+------------------+----------+---------+---------------------+---------------------+---------------+---------+----------------------+----------------------+--------------------+
    1 row in set (0.00 sec)
    
    
    CREATE DEFINER=`root`@`%` FUNCTION `loadTreeByParent`(begin_sn INT) RETURNS varchar(600) CHARSET utf8
    BEGIN   
        DECLARE rest VARCHAR(600);  
        DECLARE temp VARCHAR(60);  
        SET rest='$';  
        SET temp=CAST(begin_sn AS CHAR);      
        WHILE temp IS NOT NULL DO  
            SET rest=CONCAT(rest,',',temp);  
            SELECT GROUP_CONCAT(sn) INTO temp FROM ClientManager WHERE FIND_IN_SET(parent,temp)>0;  
        END WHILE;  
        RETURN rest;  
    END
    
    19:08:02	CREATE DEFINER=`zjzc_app`@`%` FUNCTION `loadTreeByParent`(begin_sn INT) RETURNS varchar(600) CHARSET utf8   BEGIN       
     DECLARE rest VARCHAR(600);       DECLARE temp VARCHAR(60);       SET rest='$';       SET temp=CAST(begin_sn AS CHAR);         
     WHILE temp IS NOT NULL DO           SET rest=CONCAT(rest,',',temp);           
     SELECT GROUP_CONCAT(sn) INTO temp FROM ClientManager WHERE FIND_IN_SET(parent,temp)>0;       END WHILE;    
     RETURN rest;   END	Error Code: 1227. Access denied; you need (at least one of) the SUPER privilege(s) for this operation	0.016 sec
     
     
     直接进入终端,root登陆执行;
     
     mysql> delimiter $$   
    mysql> CREATE DEFINER=`zjzc_app`@`%` FUNCTION `loadTreeByParent`(begin_sn INT) RETURNS varchar(600) CHARSET utf8  
        -> BEGIN   
        ->     DECLARE rest VARCHAR(600);  
        ->     DECLARE temp VARCHAR(60);  
        ->     SET rest='$';  
        ->     SET temp=CAST(begin_sn AS CHAR);      
        ->     WHILE temp IS NOT NULL DO  
        ->         SET rest=CONCAT(rest,',',temp);  
        ->         SELECT GROUP_CONCAT(sn) INTO temp FROM ClientManager WHERE FIND_IN_SET(parent,temp)>0;  
        ->     END WHILE;  
        ->     RETURN rest;  
        -> END$$ 
    Query OK, 0 rows affected (0.00 sec)
    

  • 相关阅读:
    Hbase性能调优(一)
    文章标题
    JDBC的PreparedStatement启动事务使用批处理executeBatch()
    java.lang.OutOfMemoryError: PermGen space及其解决方法
    linux 关机命令总结
    oracle 启动关闭以及监听启动关闭命令
    bash: sqlplus: command not found 解决方法
    VMware 虚拟机 linux执行 ifconfig 命令 eth0没有IP地址(intet addr、Bcast、Mask) UP BROADCAST MULTICAST 问题
    Linux的文本编辑和文本内容查看命令
    RHEL6服务器网络配置 修改linux RHEL6系统下的ip方法
  • 原文地址:https://www.cnblogs.com/hzcya1995/p/13350714.html
Copyright © 2011-2022 走看看