将数据库的备份导入到现有网站后,出现以下错误:
指定为定义者的用户(' someuser' @'%')不存在
我已经登录了我的数据库,当我执行
时SHOW PRIVILEGES;
我可以看到我被允许
"向其他用户提供您拥有的特权......"
因此,我执行
CREATE USER 'someuser'@'localhost' IDENTIFIED BY 'password';
但是我收到以下错误:
#1227 - 拒绝访问;您需要(至少一个)此操作的CREATE USER权限
我也试过了
GRANT ALL ON *.* TO 'someuser'@'%' IDENTIFIED BY 'password'; FLUSH PRIVILEGES;
替代方案,但得到了以下回应:
#1045 - 拒绝访问用户'其他用户' @'%' (使用密码:是)
请有人帮我解决这个问题!我已经阅读了另一篇类似的帖子,但这些答案对我来说并不适用,因为我得到了上述指定的回复。
答案 0 :(得分:1)
答案 1 :(得分:0)
正如@Jonathan所说,definer通常与函数/触发器定义有关。
现在关于您的第一个错误,您需要在导入之前定义'someuser'@'%'
。这与'someuser'@'localhost'
不同。
关于#1227 - Access denied; you need (at least one of) the CREATE USER privilege(s) for this operation
,这意味着您的mysql用户没有此权限。
您需要使用root登录,或者授予当前用户CREATE USER权限。