2014-02-07 68 views
0

我創建了一個SQL轉儲使用MySQL的轉儲,但對恢復另一臺服務器上,我得到一個錯誤'ERROR 1227 (42000) at line 397: Access denied; you need the SUPER privilege for this operation :MySQL的轉儲恢復

,當我檢查的行號我看到這個問題似乎是與部分根@本地主機,因爲新服務器沒有來自我正在使用的帳戶的root權限。如果我刪除了根@本地主機它繼續前進,但我不知道如果它的正確方法通過刪除根本@本地主機從以下,因爲有許多地方在它有參考的SQL文件。
什麼是正確的方法?

/*!50003 CREATE*/ /*!50017 DEFINER=`root`@`localhost`*/ /*!50003 TRIGGER `Update Feeback status in Order` AFTER INSERT ON `customer_ratings` 
FOR EACH ROW BEGIN 
+0

您是否更改MySQL服務器上的datadir?它是用於Windows嗎? – Sergey

回答

0

您可以檢查您的訪問權限。

1.-您在新的服務器

$的mysql -u根-p -hlocalhost

輸入密碼,您的訪問:

2:顯示你的補助

$ mysql> SHOW GRANTS FOR'root'@'localhost';

要解決這個問題,你可以這樣做。

1.-停止您的服務。

服務mysqld的停止

2:請用 「停止授權表」

mysqld的--skip-贈款表指示啓動服務

3.更新root用戶的密碼

$ mysql> UPDATE user SET Password = PASSWORD('my_password')where USER ='root';你可以創建你的用戶 $ mysql> CREATE USER'root'@'localhost'IDENTIFIED BY'password';

4.-沖洗的privilages

$的MySQL> FLUSH特權;

5.-重新啓動服務器

服務mysqld的啓動

6.-盤恢復您的轉儲文件。

的mysql -u根-hlocalhost -p [數據庫名稱] < dumpfilename.sql

希望這有助於。

+0

我沒有root權限的mysql,所以我想知道,如果我刪除這部分/ *!50017 DEFINER ='root' @ localhost' * /從MySQL SQL文件和恢復將導致任何問題的功能觸發器創建正如我所看到的,如果我刪除了/ *!50017 DEFINER ='root' @ localhost' * /它從還原sql文件創建數據庫 – user1492502

+0

刪除之後創建觸發器,如上所述。觸發器:插入類別計數 事件:INSERT 表:gc_categories 聲明:BEGIN INSERT INTO gc_category_counts SET category_id = new.id; END 時序:AFTER 創建:NULL 的sql_mode:NO_AUTO_VALUE_ON_ZERO 定義者:HART @% character_set_client字符:UTF8 collat​​ion_connection是:utf8_general_ci 數據庫歸類:utf8_general_ci – user1492502

+0

定義者子句確定安全性上下文在觸發檢查的訪問權限時要使用的激活時間。它是在MySQL 5.0.17中添加的。 你在舊的和新的MySQL服務器上有什麼版本? @ user1492502 –