问题
MySQL 数据库迁移后,执行update语句报错:
[Err] 1449 - The user specified as a definer (''@'') does not exist
解决
使用MySQL超级管理员root授予权限
grant all on *.* to ''@'' identified by '';
flush privileges;
待续。。。
- MySQL Error 1449 是由于相关数据库对象没有相应执行权限导致的。具体是哪些数据库对象,哪些权限则需要结合实际情况分析了。
- 问题通过 MySQL grant 授予权限解决,但上面给出的解决方案非常粗暴,直接授予所有用户对所有数据库对象(表、索引、视图、函数等)的所有操作权限(select、update、create等)。grant 语句的使用方法参考 MySQL授权命令grant的使用方法
疑惑
- 网上查找搜索解决方案时,发现虽然都是报Error 1449,但是相应提示信息的definer都是有具体的用户账号的,如
definer ('root'@'%')
,为什么我遇到的却是空字符串? - 数据库迁移过程中是因为丢失了什么东西导致迁移后的数据库运行异常呢?数据库迁移时又应该怎么避免这个问题呢?