mysql - 如何恢复mysql数据库

标签 mysql database backup restore

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

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

提前致谢

最佳答案

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

关于mysql - 如何恢复mysql数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1078818/

相关文章:

sql - 我如何编写一个 SQL 查询来返回一个项目的所有类别?

mysql - 我如何将此查询转换为使用子查询的查询?

database - 在 ubuntu 服务器中使用数据库备份网站

php - php同时获取复选框id和值

mysql - 带有 nodejs 和 mysql 的无服务器 => 进程在完成请求之前退出

mysql - 选择多部分(多仓库)订单时出现问题

c# - 如何在C#中指定相对SQLite数据库路径?

c - 如何为 SQLite 做增量备份?

iphone - 核心数据 - 备份到 Google App Engine (iPhone)

WLAN 上的 mysql 客户端