關於The user specified as a definer ('root'@'%') does not exist 解決方法

解決辦法:

第一種:給root賦值所有權限:注意在命令符下面操作.

授權 給 root  所有sql 權限

Mysql—>grant all privileges on *.* to root@”%” identified by “.”;

重新加載權限

Mysql—>flush privileges;

但是這種重啓之後一會就又不行的話。

第二種:

複製視圖創建語句,直接將create改成alter,definer改成相關的,比如root@localhost  例如:
用alter view 修改definer的值,alter ALGORITHM=UNDEFINED DEFINER=`public`@`192.168.0.%` 
SQL SECURITY DEFINER VIEW `view_product` AS 視圖選擇語句。


原因分析:

因爲創建視圖使用的是xff@%用戶(目前已經不存在),然後登錄用戶使用的是xff@localhost用戶,

導致mysql認爲現在的用戶無權限訪問該視圖,解決方法就是在當前用戶下重建該視圖。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章