2009-07-03 110 views
1

我已經採取了mysql數據庫的備份,但是當我試圖恢復它時,我的存儲過程沒有得到恢復。有什麼辦法像我們使用的備份 - mysqldump命令中的例程。 我們可以在mysql中做任何這樣的事情嗎?如何恢復mysql數據庫

如果我使用mysqldump,那麼它只是傾銷mysql表,但如果我使用mysql命令來恢復,那麼它給我一個錯誤 - 錯誤1064(42000)在3062行:您的SQL中有錯誤句法;檢查對應於你的MySQL服務器版本的手冊正確的語法使用近「使用BTREE )ENGINE = MyISAM的默認字符集= latin1的」在第6行

在此先感謝

+1

不應該這樣去ServerFault – 2009-07-03 11:01:00

回答

2

要還原備份5.1爲5.0個實例。 如果要將此轉儲加載到5.0中,您將不得不從表定義中刪除「USING BTREE」。

+0

我恢復它的5.1實例。 – 2009-07-03 12:03:17

3

一種解決方案是在沒有數據的情況下轉儲模式,執行搜索替換'USING BTREE',創建數據庫並加載轉儲而不使用表定義。

或者,在一個un * x shell中,假設你有perl可用,這可以直接使用完全轉儲並使用perl(或awk,sed,ruby ...)就地過濾文件來完成:

cat name-of-dump.sql | perl -pe 's/USING BTREE//' | mysql name_of_db 

,或者如果你傾倒壓縮:

zcat name-of-dump.sql.gz | ...