欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

MySqlException: The user specified as a definer ('root'@'%') does not exist解决方法

程序员文章站 2022-09-04 18:54:29
之前因为MySql安全问题,将root@%改为允许特定ip段进行远程连接,结果有一个接口报The user specified as a definer ('root'@'%') does not exist。 先确定到报错所涉及的表,然后查看了存储过程、触发器、视图等,最后发现有一个触发器的def ......

之前因为mysql安全问题,将root@%改为允许特定ip段进行远程连接,结果有一个接口报the user specified as a definer ('root'@'%') does not exist。

MySqlException: The user specified as a definer ('root'@'%') does not exist解决方法

 

先确定到报错所涉及的表,然后查看了存储过程、触发器、视图等,最后发现有一个触发器的definer是root@%,但是这个已经被我改掉了

MySqlException: The user specified as a definer ('root'@'%') does not exist解决方法

 

 然后删掉这个触发器,在服务器重新建立这个触发器,此时definer为root@localhost,然后程序正常执行。

 

总结:因为之前创建触发器时默认的definer为root@%(目前已经不存在),导致mysql认为现在的用户无权限访问该触发器,解决方法就是在当前用户下重建该触发器。

   数据库修改mysql.user后应检查,存储过程、触发器、视图等。