【问题标题】:How to restore mysql database如何恢复mysql数据库
【发布时间】:2010-11-07 21:46:20
【问题描述】:

我已经备份了 mysql 数据库,但是当我尝试恢复它时,我的存储过程没有恢复。有什么方法可以像我们在 mysqldump 命令中使用 --routines 一样进行备份。 我们可以在mysql中做任何这样的事情吗?

如果我使用 mysqldump 那么它只是转储 mysql 表但是如果我使用 mysql 命令来恢复那么它会给我一个错误 - 第 3062 行的错误 1064 (42000):您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以获取在“使用 BTREE”附近使用的正确语法 ) ENGINE=MyISAM DEFAULT CHARSET=latin1' 在第 6 行。

提前致谢

【问题讨论】:

  • 这不应该在 ServerFault 上继续

标签: mysql database backup restore


【解决方案1】:

一种解决方案是转储不带数据的架构,搜索替换“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 | ...

【讨论】:

    【解决方案2】:

    您正在将 5.1 备份恢复到 5.0 实例。 如果您想将此转储加载到 5.0.0 中,则必须从表定义中删除“USING BTREE”。

    【讨论】:

    • 我正在 5.1 实例上恢复它。
    • 很抱歉,我确认我正在使用 5.0 实例,我正在其上恢复 5.1 实例。谢谢。
    猜你喜欢
    • 2010-12-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-12
    • 1970-01-01
    • 1970-01-01
    • 2015-05-29
    相关资源
    最近更新 更多