問題
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'@'%')
,爲什麼我遇到的卻是空字符串? - 數據庫遷移過程中是因爲丟失了什麼東西導致遷移後的數據庫運行異常呢?數據庫遷移時又應該怎麼避免這個問題呢?