Ash*_*pta 6 mysql backup restore mysqldump
我正在使用命令行来备份和恢复MYSQL数据库.让我使用具有视图和过程的Database Data1.在进入时Cmd line,我使用mysqldumpie
..>bin> mysqldump -u root -proot Data1 > Datafile.mysql
Run Code Online (Sandbox Code Playgroud)
当我使用上面的Cmd时,它会在带有Dtafile.mysql
Name 的Mysql的bin文件夹上创建一个备份文件.
但问题是它创建了仅备份表,而不是程序.
当我在空白数据库"Data2"中恢复它时
..bin> mysql - u root -proot Data2 < Dataafile.mysql
Run Code Online (Sandbox Code Playgroud)
它的作用是,它创建了所有表并将视图转换为表,并且没有恢复任何过程.
意味着我无法使用所有表,视图和过程恢复完整数据库备份.
你们中的任何人都可以帮助它......我会非常感激.
Ana*_*hah 11
包含mysqldump的"--routines"参数,它将转储过程.
编辑#1:你的mysqldump命令现在看起来像,
mysqldump -u root -proot --routines Data1 > Datafile.mysql
Run Code Online (Sandbox Code Playgroud)
编辑#2:
如果要保留视图,还需要添加--add-drop-table开关.原因是视图分两步创建(首先是虚拟表,然后是真实视图).另请注意,表和视图共享相同的名称空间,因此不要被mysqlclient中"Show Tables"命令给出的输出误导.如果该命令显示创建视图查询然后使用bingo,请使用"显示创建视图vw_test",同时确保已正确恢复视图,将一些数据插入到其他数据库的相关表中,然后运行选择查询.看来,如果数据比你击中靶心还要紧张,那就拍拍自己吧:)否则你总能回到Stackoverflow这个美妙的社区.
所以(维护视图)你的mysqldump命令现在应该是这样的
mysqldump -u root -proot --routines --add-drop-table Data1 > Datafile.mysql
Run Code Online (Sandbox Code Playgroud)
HTH