MySQL备份和从命令行恢复

时间:2009-05-05 08:10:22

标签: mysql backup mysqldump restore

我正在使用命令行来备份和恢复MYSQL数据库。 让我使用具有视图和过程的Database Data1。 在Cmd line时,我使用mysqldump

..>bin> mysqldump -u root -proot Data1 > Datafile.mysql

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

但问题是它创建了仅备份表,而不是程序。

当我在空白数据库“Data2”中恢复它时

..bin> mysql - u root -proot Data2 < Dataafile.mysql

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

表示我无法使用所有表格,视图和过程恢复完整数据库备份。

你们任何人都可以帮助它吗? 我非常感谢。

2 个答案:

答案 0 :(得分:11)

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

编辑#1: 你的mysqldump命令现在应该是,

mysqldump -u root -proot --routines Data1 > Datafile.mysql

编辑#2:
如果要保留视图,还需要添加--add-drop-table开关。原因是视图分两步创建(首先是虚拟表,然后是真实视图)。另请注意,表和视图共享相同的名称空间,因此不要被mysqlclient中“Show Tables”命令给出的输出误导。如果该命令显示创建视图查询然后使用bingo,请使用“显示创建视图vw_test”,同时确保已正确恢复视图,将一些数据插入到其他数据库的相关表中,然后运行选择查询。看来,如果数据比你击中靶心还要紧张,那就拍拍自己吧:)否则你总能回到Stackoverflow这个美妙的社区。

所以(为了维护视图)你的mysqldump命令现在看起来应该是这样的

mysqldump -u root -proot --routines --add-drop-table Data1 > Datafile.mysql

HTH

答案 1 :(得分:-1)

备份数据库使用命令行,phpmyadmin或mysql管理员有三种最佳方法 mysql数据库备份和恢复方便,使用mysql数据库备份

mysql administrator

phpmyadmin