1. 程式人生 > >ERROR 1449 (HY000): The user specified as a definer (''@'') does not exist

ERROR 1449 (HY000): The user specified as a definer (''@'') does not exist

楔子

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]%,替換之。重新建立。沒有嘗試過,後面可以試試。

參考