首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从命令行执行MySQL备份和恢复

问从命令行执行MySQL备份和恢复
EN

Stack Overflow用户
提问于 2009-05-05 08:10:22
回答 2查看 27.4K关注 0票数 6

我正在使用命令行来备份和恢复MYSQL数据库。假设我有一个数据库Data1,其中包含视图和过程。在Cmd line中,我使用mysqldump,即

代码语言:javascript
复制
..>bin> mysqldump -u root -proot Data1 > Datafile.mysql

当我使用上面的命令时,它在Mysql的bin文件夹上创建了一个备份文件,文件名为Dtafile.mysql。

但问题是它只创建表的备份,而不是过程的备份。

当我在一个空白数据库"Data2“中恢复它的时候

代码语言:javascript
复制
..bin> mysql - u root -proot Data2 < Dataafile.mysql

它所做的是创建所有的表,并将视图转换为表,并且没有恢复任何过程。

这意味着我无法恢复包含所有表、视图和过程的完整数据库备份。

你们中有谁能控制住它..我会非常感谢的。

EN

回答 2

Stack Overflow用户

发布于 2009-05-05 08:27:04

包括mysqldump的"--routines“参数,它将转储过程。

编辑#1 : mysqldump命令现在应该如下所示:

代码语言:javascript
复制
mysqldump -u root -proot --routines Data1 > Datafile.mysql

编辑#2:

如果希望保留视图,还需要添加-- add -drop-table开关。原因是视图是分两步创建的(首先是虚拟表,然后是真正的视图)。另外请注意,表和视图共享相同的名称空间,所以不要被mysqlclient中的"Show Tables“命令给出的输出所误导。改为使用“显示创建视图vw_test”,如果该命令显示您创建视图查询,然后宾果,也是为了确保视图已被正确恢复插入一些数据到您的其他数据库中的相关表,然后在视图上运行选择查询,如果数据捆绑比你击中公牛眼,拍拍自己的背:)否则你可以随时返回到这个美妙的社区在Stackoverflow。

因此(为了维护视图) mysqldump命令现在应该如下所示

代码语言:javascript
复制
mysqldump -u root -proot --routines --add-drop-table Data1 > Datafile.mysql

HTH

票数 11
EN

Stack Overflow用户

发布于 2013-04-24 16:19:12

有三种最好的方法来备份数据库使用命令行,phpmyadmin或mysql管理员mysql数据库备份和恢复的简单方法,使用mysql数据库备份

mysql administrator

phpmyadmin

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/823841

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档