web-dev-qa-db-ja.com

#1227-アクセスが拒否されました。この操作には(少なくとも1つ)SUPER特権が必要です

こんにちは、現在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 
18
Lachie

root @ localhost userでトリガーを作成する権限がないことを意味します。

トリガーコマンドから定義者を削除してみてください。

CREATE DEFINER = root @ localhost FUNCTION fnc_calcWalkedDistance

37
Aman Aggarwal

「DEFINER = your user name @ localhost "およびphpmyadminwillからSQLを実行すると正常に動作します。

11
Shafiq

これは少し遅れることがありますが、cpanelでsqlファイルをアップロードする場合は、sqlファイルのrootをcpanelユーザー名に置き換えてみてください。

上記の場合、次のように書くことができます

CREATE DEFINER = control_panel_username @ localhost FUNCTION fnc_calcWalkedDistance

その後、ファイルをアップロードします。それが役に立てば幸い

11
Junior_swashluv