[英]MySQL backup and restore from command line
我正在使用命令行来备份和恢复MYSQL数据库。 让我使用具有视图和过程的Database Data1。 在Cmd line
,我使用mysqldump
ie
..>bin> mysqldump -u root -proot Data1 > Datafile.mysql
当我使用上面的Cmd时,它使用Dtafile.mysql
名称在Mysql的bin文件夹上创建一个备份文件。
但问题是它创建了仅备份表,而不是程序。
当我在空白数据库“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”命令给出的输出误导。 如果该命令显示创建视图查询然后使用bingo,请使用“显示创建视图vw_test”,同时确保已正确恢复视图,将一些数据插入到其他数据库的相关表中,然后运行选择查询。看来,如果数据比你击中靶心还要紧张,那就拍拍自己吧:)否则你总能回到Stackoverflow这个美妙的社区。
所以(维护视图)你的mysqldump命令现在应该是这样的
mysqldump -u root -proot --routines --add-drop-table Data1 > Datafile.mysql
HTH
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.