gpt4 book ai didi

从命令行备份和恢复 MySQL

转载 作者:可可西里 更新时间:2023-11-01 06:42:26 25 4
gpt4 key购买 nike

我正在使用命令行来备份和恢复 MYSQL 数据库。假设我有一个数据库 Data1,其中包含 View 和过程。在 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

它所做的是,它创建所有表并将 View 转换为表并且没有恢复任何过程。

意味着我无法恢复包含所有表、 View 和过程的完整数据库备份。

有没有大佬帮忙看看我将非常感激。

最佳答案

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

编辑#1:您的 mysqldump 命令现在应该类似于

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

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

因此(为了维护 View )您的 mysqldump 命令现在应该如下所示

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

HTH

关于从命令行备份和恢复 MySQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/823841/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com