廣告贊助


程式語言    : 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` 這一段給刪除。
    
    

創作者介紹
創作者 jenyu 的頭像
jenyu

jenyu 隨意聊

jenyu 發表在 痞客邦 留言(0) 人氣()