【问题标题】:The user specified as a definer does not exist指定为定义者的用户不存在
【发布时间】:2016-07-13 09:53:00
【问题描述】:

将我的数据库备份导入现有网站后,我收到以下错误:

指定为定义者的用户('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)

请有人帮我解决这个问题!我读过另一篇类似的帖子,但这些答案对我不起作用,因为我得到了上述指定的回复。

【问题讨论】:

    标签: mysql database


    【解决方案1】:

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

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

    【讨论】:

    • Mil gracias,我齐射,没有 encontraba la falla。
    【解决方案2】:

    正如@Jonathan 所说,定义器通常与函数/触发器定义有关。

    现在关于您的第一个错误,您需要在导入之前定义'someuser'@'%'。这与'someuser'@'localhost' 不同。

    关于#1227 - Access denied; you need (at least one of) the CREATE USER privilege(s) for this operation,表示你的mysql用户没有这个权限。

    您需要使用 root 登录,或授予当前用户 CREATE USER 权限。

    【讨论】:

      猜你喜欢
      • 2013-12-09
      • 2020-09-25
      • 2021-07-28
      • 2017-02-16
      • 2022-01-14
      • 2012-04-27
      • 2019-11-07
      • 2016-11-16
      相关资源
      最近更新 更多