在mysql中创建触发器的权限

Moh*_*deh 12 mysql triggers

mysql ver是5.0.67

我的触发器代码是:

DELIMITER //
CREATE TRIGGER upd_price BEFORE UPDATE ON product_price
 FOR EACH ROW BEGIN  
    INSERT INTO update_price_log (product_id, product_price_old, product_price_new) values(OLD.product_id, OLD.product_price, NEW.product_price);
END
//
DELIMITER ;
Run Code Online (Sandbox Code Playgroud)

错误是:

#1227 - 拒绝访问; 您需要此操作的SUPER权限

我的服务器,不是cpanel!它是:DirectAdmin Web控制面板.

我如何创建SUPER权限并创建我的触发器?

Phi*_*ord 12

您必须具有MySQL Root权限才能为用户设置SUPER权限.

GRANT SUPER 
ON '<database>'.'<tablename/*>' 
TO '<username>'@'<host/connection/ip/%>'; 
Run Code Online (Sandbox Code Playgroud)


Jef*_*son 6

我试图在 database.table 级别上给予 SUPER 特权,但它失败了,所以我做到了

grant super on *.* to 'my_user'@'localhost';
Run Code Online (Sandbox Code Playgroud)

然后创建了我的触发器。但是不要忘记撤销它

revoke super on *.* from 'my_user'@'localhost';
Run Code Online (Sandbox Code Playgroud)

因为将其保留在 Internet 数据库中是一种危险的特权