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@%或者admin@127.0.01这样的
其他:解决办法:
给root用户再添加一个对全部host都有可以访问的权限:
mysql -uroot -pPasswd
mysql >grant all privileges on *.* to root@"%" identified by "Passwd";
mysql >flush privileges;
------
现在再导出试试吧 你执行完GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' IDENTIFIED BY PASSWORD '*C94CA76F1376C3A0482187452BFBF41DE621E9DA' WITH GRANT OPTION
之后需要 flush privileges才能生效的 你应该用同一个用户吧?
你试试看
上一个:mysql中修改表字段
下一个:mysql 如何在查询时防止插入