`

The user specified as a definer ('aaa'@'localhost') does not exist

 
阅读更多

今天遇到一个客户BUG,当前的jdbc连接用户是root,然后部分删除操作都会报下面这个错误:The user specified as a definer ('aaa'@'localhost') does not exist

最后找原因发现删除操作做了触发器,而触发器里面有这样一句

 /*!50017 DEFINER = ''aaa@'localhost' */

 原来最初是使用aaa这个mysql连接导入数据,这时系统将触发器的创建者定义为aaa了,后面如果用root去调用触发器时就会被认为没有操作触发器的权限,所以就报上面的错误了。

 

解决方法是修改definer=root即可

 

下面可以查看该数据库有哪些触发器:

SHOW TRIGGERS FROM [数据库名] WHERE DEFINER = 'aaa@localhost'

1
0
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics