当前位置:首页 > 开发 > 数据库 > 正文

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

发表于: 2012-03-28   作者:白糖_   来源:转载   浏览:
摘要: 今天遇到一个客户BUG,当前的jdbc连接用户是root,然后部分删除操作都会报下面这个错误:The user specified as a definer ('aaa'@'localhost') does not exist 最后找原因发现删除操作做了触发器,而触发器里面有这样一句 /*!50017 DEFINER = ''aaa@'localhost' */  原来最初

今天遇到一个客户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'

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

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号