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

Lac*_*hie 19 mysql cpanel

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

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

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$$
Run Code Online (Sandbox Code Playgroud)

这是错误代码:

MySQL said: Documentation

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

Ama*_*wal 40

这意味着您没有权限使用root @ localhost用户创建触发器.

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

CREATE DEFINER = root@localhost功能 fnc_calcWalkedDistance

  • 我将我的数据库转储到 sql 文件,我不记得创建任何这样的函数......搜索转储文件,我在最后一行找到了这个命令,我删除并工作,谢谢。 (2认同)

Sha*_*fiq 13

只需删除“ DEFINER = your user name@ localhost”并从phpmyadmin运行SQL即可正常工作。

  • 它奏效了,这是一个完美的答案。GoDaddy 告诉我,我应该为此购买专用服务器,但您救了我的一天。 (3认同)

小智 11

这可能会有点晚,但如果你要在cpanel上上传一个sql文件,那么尝试用你的sql文件中的cpanel用户名替换root.

在上面的情况下你可以写

CREATE DEFINER = control_panel_username@ localhost功能 fnc_calcWalkedDistance

然后上传文件.希望能帮助到你

  • 是的,对我来说就是 control_panel_user@localhost (2认同)

Muh*_*qas 7

从所有调用(包括过程)中删除 DEFINER= root@localhost