指定为定义者的用户不存在。

3

在将数据库备份导入已有网站后,我遇到以下错误:

指定的定义者用户 ('someuser'@'%') 不存在

我已经登录到我的数据库,并且当我执行以下代码时:

SHOW PRIVILEGES;

我可以看到我被允许

"授予其他用户你所拥有的权限..."

因此,我执行

CREATE USER 'someuser'@'localhost' IDENTIFIED BY 'password';

但是我遇到了以下错误:

#1227 - 拒绝访问;您需要(至少之一)CREATE USER权限才能执行此操作

我还尝试过

GRANT ALL ON *.* TO 'someuser'@'%' IDENTIFIED BY 'password'; FLUSH PRIVILEGES;

我尝试了另一种方法,但是得到了以下的回复:

#1045 - 用户'anotheruser'@'%'被拒绝访问 (使用密码: YES)

请有人帮我解决这个问题!我已经阅读了其他类似的帖子,但那些答案对我没有用,因为我得到了上述指定的回复。

2个回答

3

导致创建脚本失败的定义者与存储过程/函数、事件和触发器相关。

enter image description here

解决问题的一种方法是在脚本中搜索并替换所有不存在用户的实例为您自己的用户。


非常感谢,你救了我,我找不到错误所在。 - bypabloc_

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权限。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接