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


之前因為MySql安全問題,將root@%改為允許特定ip段進行遠程連接,結果有一個接口報The user specified as a definer ('root'@'%') does not exist。

 

先確定到報錯所涉及的表,然后查看了存儲過程、觸發器、視圖等,最后發現有一個觸發器的definer是root@%,但是這個已經被我改掉了

 

 然后刪掉這個觸發器,在服務器重新建立這個觸發器,此時definer為root@localhost,然后程序正常執行。

 

總結:因為之前創建觸發器時默認的definer為root@%(目前已經不存在),導致mysql認為現在的用戶無權限訪問該觸發器,解決方法就是在當前用戶下重建該觸發器。

   數據庫修改mysql.user后應檢查,存儲過程、觸發器、視圖等。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM