[Err] 1449

╄→尐↘猪︶ㄣ 提交于 2020-04-06 18:54:39

在进行一个数据迁移时,同一服务不同库之间的数据迁移。因为只需要迁移部分满足条件的数据,所以需要带查询条件。

写了大致如下结构的SQL:

insert into “表A” select * from “数据库名”.“表A” where id in ('1','2','3');

结果报错:

[Err] 1449 - The user specified as a definer ('root'@'localhost') does not exist

网上搜寻都说是权限问题,我ROOT账号本来就是所有权限了,暴躁了好一会。 突然发现我的root账号是root@%,为啥会提示root@localhost。

检查了一遍后,发现在目标数据库中表A上有触发器,触发器中调用了存储过程,然后存储过程中定义者为root@localhost。

改成 root@%,重新执行正确。

这个问题肯定是权限的问题。一定要仔细检查权限是否授权

  1. grant all privileges
  2. 检查存储过程或者函数的定义者
  3. 检查视图的定义者
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!