程式語言 : PHP 5.5
操作平台 : phpMyAdmin
MySQL回應 : #1449 - The user specified as a definer ('lohasfoo'@'localhost') does not exist
問題描述 :
使用 SQL 查詢某張表卻出現 #1449 - The user specified as a definer ('lohasfoo'@'localhost') does not exist 的錯誤,
在 phpMyAdmin 上查看 table 的資料,也是出現上述的錯誤且資料看起像是都沒匯入進去。
參考資訊來源 :
https://ssorc.tw/4668
https://stackoverflow.com/questions/10169960/mysql-error-1449-the-user-specified-as-a-definer-does-not-exist
解決方法 :
會出現這個問題主因是出在從 A DB匯出的帳號與 B DB 使用帳號不同,這時只要將匯入的資料找到
CREATE ALGORITHM=UNDEFINED DEFINER=`localhost`@`localhost`
這一段改成
CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost`
以上請不要照抄,要改的地方只有帳號的地方,也就是將範例文中的 localhost 改成 root,
本範例改成 root 是因為在本地端使用得帳號是 root ,同理要將要修改的帳號改成目前要匯入的DB所使用的帳號
但以上僅適用有 SUPER 權限者,若無 SUPER 權限則會在資料匯入時產生另外一個 MySQL錯誤回應
#1227 - Access denied; you need (at least one of) the SUPER privilege(s) for this operation
若是要比較省事的解法,就是將 DEFINER=`localhost`@`localhost` 這一段給刪除。