6

我正在使用命令行来备份和恢复 MYSQL 数据库。让我使用一个包含视图和过程的数据库 Data1。在时Cmd line,我使用mysqldumpie

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

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

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

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

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

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

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

你们中的任何人都可以帮忙吗?我会非常感激的。

4

2 回答 2

11

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

编辑#1:你的 mysqldump 命令现在应该看起来像,

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

编辑#2:
如果要保留视图,还需要添加 --add-drop-table 开关。原因是视图分两步创建(首先作为虚拟表,然后作为真实视图)。另请注意,表和视图共享相同的名称空间,因此不要被 mysqlclient 中“显示表”命令给出的输出误导。如果该命令向您显示创建视图查询然后宾果游戏,请使用“显示创建视图 vw_test”,以确保视图已正确恢复,将一些数据插入其他数据库中的相关表,然后在看,如果数据比你撞到靶心,请拍拍自己的背 :) 否则你总是可以回到 Stackoverflow 上这个美妙的社区。

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

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

高温高压

于 2009-05-05T08:27:03.637 回答
-1

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

mysql管理员

phpmyadmin

于 2013-04-24T08:19:11.783 回答