之前因為MySql安全問題,將root@%改為允許特定ip段進行遠程連接,結果有一個介面報The user specified as a definer ('root'@'%') does not exist。 先確定到報錯所涉及的表,然後查看了存儲過程、觸發器、視圖等,最後發現有一個觸發器的def ...
之前因為MySql安全問題,將root@%改為允許特定ip段進行遠程連接,結果有一個介面報The user specified as a definer ('root'@'%') does not exist。
先確定到報錯所涉及的表,然後查看了存儲過程、觸發器、視圖等,最後發現有一個觸發器的definer是root@%,但是這個已經被我改掉了
然後刪掉這個觸發器,在伺服器重新建立這個觸發器,此時definer為root@localhost,然後程式正常執行。
總結:因為之前創建觸發器時預設的definer為root@%(目前已經不存在),導致mysql認為現在的用戶無許可權訪問該觸發器,解決方法就是在當前用戶下重建該觸發器。
資料庫修改mysql.user後應檢查,存儲過程、觸發器、視圖等。