向数据库导入triggerDELIMITER |
CREATE TRIGGER testref 
BEFORE INSERT ON testdb.sell
FOR EACH ROW 
BEGIN
     set new.sortorder=1;
END;
|
ERROR 1142 (42000) at line 2: TRIGGER command denied to user 'test_sql'@' .......已经分配所有权限GRANT ALL PRIVILEGES ON testdb.* TO 'test_sql'@'%' IDENTIFIED BY 'test_sql';为啥还是不行?

解决方案 »

  1.   

    你用什么用户登录
    SELECT CURRENT_USER();
      

  2.   


    root 没在我手上,别人给我 (test_sql) 分配权限
      

  3.   

    show grants; 贴出你的结果。
      

  4.   


    GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER, CREATE TEMPO
    RARY TABLES, EXECUTE, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE ON ....确实没有trigger, 这个要单独加上么?
      

  5.   

    显然对方没有用 GRANT ALL PRIVILEGES ON testdb.* TO 'test_sql'@'%' IDENTIFIED BY 'test_sql'; 给你授权。
     
      

  6.   

    MYSQL版本:
    At CREATE TRIGGER time, the user that issues the statement must have the TRIGGER privilege. (SUPER prior to MySQL 5.1.6.) 
      

  7.   

    show grants 结果| GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, FILE, INDEX, ALTER, CREATE
     TEMPORARY TABLES, EXECUTE, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTIN
    E ON *.* TO 'test_sql'@'%' IDENTIFIED BY PASSWORD '*2D9CDE7A1E329BEF006418E263C3
    6B56674DB1A9' |
    | GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER, CREATE TEMPO
    RARY TABLES, LOCK TABLES, EXECUTE, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER
     ROUTINE, TRIGGER ON `ddfw`.* TO 'test_sql'@'%' WITH GRANT OPTION
                  |貌似加上了,但是还是报同样错
      

  8.   

    你现在要改的数据库是哪个?是不是ddfw?
      

  9.   

    对,是 ddfw, 之前是个代称而已 
      

  10.   

    用的 test_sql执行结果贴一下
    mysql> select current_user();
    +----------------+
    | current_user() |
    +----------------+
    | test_sql@%     |
    +----------------+
      

  11.   

    你现在create trigger 的出错信息是什么?
      

  12.   


    还是老样子 TRIGGER command denied to user 'test_sql'@'这里是某ip' for table 'sell'
      

  13.   

    我在 11 楼的那个 show grants 结果,有两条, 好像不太正常
      

  14.   

    感觉是用户名的问题
    MySQL的授权是 用户名+主机名
    新增这样的用户,再授权试试
    [email protected]
      

  15.   

    首先用户名没有问题。不用在这方面浪费时间了。的确是你的两个授权, ON *.* TO 'test_sql'@'%'的这个会被优先处理,让对方把这个revoke掉。