2009-07-03 92 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 | ...