ERROR 1449 (HY000): The user specified as a definer (''@'') does not exist
阿新 • • 發佈:2018-12-10
楔子
MySQL資料庫在查詢一個檢視是報錯,檢視是從一個數據庫匯入的。網友說是許可權問題,調整許可權還是不行,後來重新在資料庫中執行建立檢視語句解決的。
給Root使用者授權
mysql> SELECT * FROM `kindle_pub_list`;
ERROR 1449 (HY000): The user specified as a definer (''@'') does not exist
-- - 授權
mysql> grant all privileges on *.* to [email protected]"%" identified by ".";
Query OK, 0 rows affected (0.15 sec)
-- 更新許可權
mysql> flush privileges;
Query OK, 0 rows affected (0.04 sec)
mysql> SELECT * FROM `kindle_pub_list`;
ERROR 1449 (HY000): The user specified as a definer (''@'') does not exist
最終解決
因為建立檢視使用的是[email protected]%使用者(目前已經不存在),然後登入使用者使用的是[email protected]
使用者,導致mysql認為現在的使用者無許可權訪問該檢視,解決方法就是在當前使用者下重建該檢視。
題外話:還有一種方法是如果你是運維人員,此問題直接交由程式去處理,讓其檢查建立觸發器、檢視、儲存過程等sql。如果包含[email protected]%,替換之。重新建立。沒有嘗試過,後面可以試試。