我已经备份了 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/