当前位置:数据库 > MySQL >>

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 如何在查询时防止插入

Oracle
MySQL
Access
SQLServer
DB2
Excel
SQLite
SYBASE
Postgres
如果你遇到数据库难题:
请访问www.zzzyk.com 试试
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,