我正在使用命令行来备份和恢复 MYSQL 数据库。
让我们使用我有一个数据库 Data1,其中包含视图和过程。
当在Cmd line
, I use mysqldump
i.e
..>bin> mysqldump -u root -proot Data1 > Datafile.mysql
当我使用上面的 Cmd 时,它会在 Mysql 的 bin 文件夹上创建一个备份文件Dtafile.mysql
Name.
但问题是它只创建表的备份,而不创建过程。
当我在空白数据库“Data2”中恢复它时
..bin> mysql - u root -proot Data2 < Dataafile.mysql
它的作用是,它创建所有表并将视图转换为表,并且没有恢复任何过程。
意味着我无法恢复包含所有表、视图和过程的完整数据库备份。
你们有谁能帮忙吗..
我将非常感激。
包含 mysqldump 的“--routines”参数,它将转储过程。
编辑#1:
您的 mysqldump 命令现在应该如下所示:
mysqldump -u root -proot --routines Data1 > Datafile.mysql
编辑#2:
如果您想保留视图,还需要添加 --add-drop-table 开关。原因是视图是通过两个步骤创建的(首先作为虚拟表,然后作为真实视图)。另请注意,表和视图共享相同的名称空间,因此不要被 mysqlclient 中“Show Tables”命令给出的输出误导。如果该命令显示创建视图查询,则使用“显示创建视图 vw_test”,然后宾果,还要确保视图已正确恢复,将一些数据插入到其他数据库中的相关表中,然后在看来,如果数据比你击中了靶心,请拍拍自己的背:)否则你可以随时回到 Stackoverflow 这个精彩的社区。
因此(为了维护视图)您的 mysqldump 命令现在应该如下所示
mysqldump -u root -proot --routines --add-drop-table Data1 > Datafile.mysql
HTH
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)