#1227 - 拒绝访问;您需要(至少一个)此操作的SUPER权限

时间:2015-07-09 11:08:46

标签: mysql cpanel

您好,我目前遇到MySQL问题!

这里出了什么问题?我是 cPanel 用户,是的,我搜索了这个,没有找到明确的答案。看起来这比具有相同错误代码问题的其他人更具体。请添加我可以遵循的详细回复! P.s我正在使用共享主机帐户。

DELIMITER $$--
-- Functions
--
CREATE DEFINER =  `root`@`localhost` FUNCTION  `fnc_calcWalkedDistance` (

`steamid64` BIGINT UNSIGNED
) RETURNS INT( 10 ) UNSIGNEDNO SQL BEGIN DECLARE finished INTEGER DEFAULT 0;

DECLARE distance INTEGER DEFAULT 0;

DECLARE x1, x2, z1, z2 FLOAT;

DECLARE curs CURSOR FOR SELECT x, z
FROM log_positions
WHERE  `steamid` = steamid64
ORDER BY  `timestamp` DESC ;

DECLARE CONTINUE HANDLER FOR NOT FOUND SET finished =1;

OPEN curs;

FETCH curs INTO x1, z1;

SET x2 = x1;

SET z2 = z1;

calculate : LOOPFETCH curs INTO x1, z1;

IF finished =1 THEN LEAVE calculate;

END IF ;

SET distance = distance + SQRT( POW( x2 - x1, 2 ) + POW( z2 - z1, 2 ) ) ;

-- SET distance = distance + 1;
SET x2 = x1;

SET z2 = z1;

END LOOP calculate;

CLOSE curs;

RETURN distance;

END$$

以下是错误代码:

MySQL said: Documentation

#1227 - Access denied; you need (at least one of) the SUPER privilege(s) for this operation 

6 个答案:

答案 0 :(得分:33)

这意味着您无权使用 root @ localhost 用户创建触发器。

尝试从触发器命令中删除definer:

创建 DEFINER = root @ localhost 功能fnc_calcWalkedDistance

答案 1 :(得分:10)

这可能会有点晚,但如果您要在cpanel上传sql文件,请尝试在您的sql文件中用您的cpanel用户名替换root。

在上面的情况下你可以写

创建DEFINER = control_panel_username @ localhost功能fnc_calcWalkedDistance

然后上传文件。 希望它有所帮助

答案 2 :(得分:6)

只需删除“ DEFINER = <form> @ your user name”并从phpmyadmin运行SQL即可。

答案 3 :(得分:2)

从包括过程在内的所有调用中删除DEFINER = root @ localhost

答案 4 :(得分:0)

改变

CREATE DEFINER =  `root`@`localhost` FUNCTION  `fnc_calcWalkedDistance` (

通过

FUNCTION  `fnc_calcWalkedDistance` (

答案 5 :(得分:0)

就我而言,我的 SQL 文件中没有提到 DEFINERroot@localhost。实际上,我试图从 Database->Import->Execute SQL Script 菜单将 SQL 文件导入并运行到 SQLYog 中。那是错误的。

然后我从 SQL 文件中复制了所有脚本并在 SQLYog 查询编辑器中运行。效果很好。