mysql用户操作表权限的问题(java)

情况是这样的:首先我用admin用户创建了一系列的表及数据,然后又用jdbc连接这个数据库(连接帐号改成root了),这时对表的查询、新增、更新都没问题,唯独执行delete时就会报这样的错误:The user specified as a definer ('oa'@'localhost') does not exist。
请问这是因为没有给root赋予删除权限出现的问题吗?应该怎么解决?我用SHOW GRANTS FOR root@'localhost';看结果说赋予了全部权限,我现在很纠结这到底是怎么回事:GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' IDENTIFIED BY PASSWORD '*C94CA76F1376C3A0482187452BFBF41DE621E9DA' WITH GRANT OPTION

求高人指教!!!
额,错误不是oa是admin:
The user specified as a definer ('admin'@'localhost') does not exist。

那是因为你这个数据库里面有个delete 的触发器,trigger 是用admin定义的,
解决办法;
1, 删除这个触发器
2,增加admin@localhost用户

2或1任取一个;
注意必须是admin@localhost,而不是admin@%或者[email protected]这样的
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-03-28
解决办法:

给root用户再添加一个对全部host都有可以访问的权限:

mysql -uroot -pPasswd

mysql >grant all privileges on *.* to root@"%" identified by "Passwd";

mysql >flush privileges;

------

现在再导出试试吧
第2个回答  2012-03-28
你执行完GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' IDENTIFIED BY PASSWORD '*C94CA76F1376C3A0482187452BFBF41DE621E9DA' WITH GRANT OPTION

之后需要 flush privileges才能生效的
第3个回答  2012-03-29
你应该用同一个用户吧?
你试试看