問題如今尚未解決,緣由是個人網站是放在一個空間裏,數據庫沒法使用root登陸,想在數據庫裏面新建個視圖,可不會建,粘貼代碼修改用戶名也不成功,始終提示用戶權限的問題,但願有高手幫忙解決一下 php
至於還原錯誤的問題,應該是權限的問題, 表還原應該沒什麼問題,通常 視圖和存儲過程的還原都會出點問題,都是由於不一樣用戶形成的,有時甚至是由於root重名同名的問題,請看下面的視圖和存儲過程的DDL: mysql
-- View "number_key_motif" DDL CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `number_key_motif` AS select .....; -- Procedure "left_5" DDL CREATE DEFINER=`root`@`localhost` PROCEDURE `left_5`() BEGIN ..... END; 看到了吧,視圖和procedure的DDL都是帶有Definer的信息的,而phpadmin/mysqladmin/navicat等管理工具在備份時都是直接把DDL語句導出的, 而再還原時確定也是試圖去執行那些DDL的,這樣固然在本例中它們是嘗試去用root的definer在另外一臺導入的服務器上去執行建視圖,存儲過程等操做的。 因此建議: 1.在不一樣服務器直接保持用戶名的同一,儘可能用同一用戶名,固然是爲了之後一些工具有份的方便了,這樣不須要本身去改工具導出的SQL腳本中的definer的信息 2.儘可能不要用root用戶, 由於你不可能在你用的每臺服務器上均可以使用root用戶的 如實在想用,可本身使用另外一服務器上的統一用戶名, 而後給那用戶賦予至高無上的,與root相同的權限 樓主的那個 「ERROR 1227 (42000) at line 5842: Access denied; you need the SUPER privilege for this operation 」 的錯誤應該是因爲導入時遇到的DEFINER=`root` 等腳本的影響產生的吧 要SUPER 的privilege不差於已經擁有了root的全部權限了,你不可能要求租用的服務器的administrator給你那樣的權限的 能夠去新建與租用服務器上同用戶名的用戶××,而後改下本身要還原導入的腳本,把其中的root或一些特權用戶 的字符全替換成×× 但願對你有幫助,由於我也曾經遇到過相似的導入還原的問題,後來這樣解決了 編碼亂碼問題實在是繁瑣,因此個人庫裏面就沒有用中文了