2013年12月7日星期六

ERROR 1356(HY000)

Original post: http://anothermysqldba.blogspot.com/2013/12/error-1356-hy000.html

後一個錯誤來時要了解的最重要的事情是要花點時間和放鬆。 
有時,人們遇到一個錯誤運行,並成為慌亂和沮喪。 深呼吸和放鬆。 有時候,“ 瘋狂就像重力。所有這一切需要的是輕輕一推 “和” 有時,問題是複雜的,答案很簡單 。“ 

這是什麼一回事呢? 嗯比如我最近被要求幫助解決了困擾其它DBA的一個問題。 在尊重各沒什麼意思了DBA,但在匆忙的人只是被忽視的 答案 就是在他們面前的,而是螺旋式下降到 瘋狂  

下面是這種情況的一般概念。 

做一個數據庫的mysqldump在用戶移動到另一個數據庫為他人被測試。 導入工作就好了。 但是,用戶開始發現錯誤,當他們試圖從一個預先構建的視圖來查詢。 

的mysql> SELECT * FROM <View_name>限制1; 

ERROR 1356(HY000):查看'。<DB_NAME>的<Viewname>'引用了無效的表(S)或列(S)或函數(S)或視圖缺乏權利定義者/調用者使用它們 

第一反應是假設出事了與進口。 做了視圖或實際的相關表被損壞? 

 

為了解決這個錯誤的第一件事待辦事項是:MySQL的>顯示創建視圖<View_Name> \ G 

你可能會看到的東西,是這樣開始的: 
*************************** 1。 排*************************** 
查看:訪問者 
 
創建視圖:CREATE ALGORITHM = UNDEFINED DEFINER =`<Some_user>`@`<Some_host_or_IP>`SQL SECURITY DEFINER查看 

當你看到誰定義者是:`<Some_user>`@`<Some_host_or_IP>` 您可以查看贈款該用戶。 

MySQL的>展會補助`<Some_user>`@`<Some_host_or_IP>`; 

原來,該解決方案是擺在首位的錯誤只是說什麼:“ 來看缺乏權利定義者/調用者使用它們  

為了方便您可以在那裡已經工作了數據庫做一個節目的贈款和複製GRANT語句,或者你可以查看什麼類型的權限,你需要在新的數據庫來實現,以使視圖來收集所需的數據。 

為用戶和權限錯誤的一個簡單的更新不見了。 

 有時候,答案很簡單 。“