The user specified as a definer ('root'@'%') does not exist

原因分析
因爲創建視圖使用的是root@%用戶(目前已經不存在),然後登錄用戶使用的是test@localhost用戶,導致mysql認爲現在的test用戶無權限訪問該視圖,解決方法就是在當前用戶下test 重建該視圖。
如果你是運維人員,此問題直接交由程序去處理,讓其檢查創建觸發器、視圖、存儲過程等sql。如果包含root@%,替換之。重新創建。
 
結合一下命令,可以看個大概。
select `name` from mysql.proc where db = 'xxxxxx' and `type` = 'PROCEDURE' limit  5\G
update mysql.event set definer='admin@%' where db='xxxxx‘;
show events\G
show procedure status; 
update mysql.proc  set  definer='admin@%'  where db = 'xxxxxxxx' and `type` = 'PROCEDURE';
select * from  information_schema.VIEWS limit 4\G
show triggers\G
show function status\G
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章