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

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

    震惊

    震惊

编辑推荐
看到网上不少人遇到过这种类似的错误,而产生这种错误的原因也有多种,我产生此错误的背景是在试图
部署环境: Web应用程序部署在IIS7上。 错误现象: 原因分析: Web应用程序需要对接收到的Security
原文见“http://www.cnblogs.com/sonicit/archive/2008/03/30/1129586.html” 说明:看了上面那位兄
mysql 出现以下问题 ERROR 1305 (42000): FUNCTION mysql.redis_servers_set_v2 does not exist 如
当我们的网络数据是SSL/TLS加密的,但没有用默认的443端口,而是用了其他端口,比如64001,那么,wi
通过客户端连接数据库可以,数据库安装到了本地,但是启动项目,控制台则报如上图错,最终原因是tomc
RHEL 5.3 安装NetWeaver7.0 时候报出如下的问题: ----------------------------------------------
RHEL 5.3 安装NetWeaver7.0 时候报出如下的问题: ----------------------------------------------
原文见 http://www.cnblogs.com/sonicit/archive/2008/03/30/1129586.html 说明:看了上面那位兄台
在Eclipse中运行一个之前可以run成功的Junit Test的时候,弹出了一个对话框并显示异常信息是:Refer
版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号