WildBill Asked: 2014-02-21 08:19:16 +0800 CST2014-02-21 08:19:16 +0800 CST 2014-02-21 08:19:16 +0800 CST 从 mysqldump 恢复备份不会删除添加 772 我正在从 mysqldump 恢复备份,并注意到如果我向数据库添加(以新表的形式),它们在恢复后仍然存在。我可以返回并删除这些表以恢复到原始状态,但由于我需要测试迁移,我想在转储期间将数据库恢复到其状态,而无需手动进入和删除表。 我想我可以DROP Database XXX在恢复之前做一个,但这会妨碍我目前的恢复方法吗? mysql backup 1 个回答 Voted Best Answer Michael - sqlbot 2014-02-22T01:14:31+08:002014-02-22T01:14:31+08:00 mysqldump有一个--add-drop-database选项可以为您将它们放入文件中。 它将在文件中的每个数据库之前添加: /*!40000 DROP DATABASE IF EXISTS `accounting`*/; 为了任何不熟悉魔术评论的人的利益,这不是评论。这是一条将由 MySQL 4.00.00 及更高版本执行的语句,伪装成向后兼容的注释。 而且,当然,这假设您的数据库和我的一样,称为“会计”。 但请注意,要使其正常工作,您需要使用其中一个或命令行选项来--add-drop-database指定要备份的数据库。您“可以”仅在命令行上仅使用数据库名称备份单个数据库,而无需前面的选项...这也可以工作,但实际上不是一个好方法,除非您打算将备份恢复到与您从中获取它的数据库名称不同的数据库名称中,由于该选项的工作方式,即使这不是您的计划,您也可以这样做。--all-databases--databases YOUR_DB_NAMEmysqldump--databases 使用--databases YOUR_DB_NAME或--all-databases自动将CREATE DATABASE和USE your_db_name;语句添加到文件中每个模式的顶部。这意味着您在恢复时不必指定它,如果您忘记或弄错了,数据仍然会到达正确的位置——“正确”的位置是文件说它应该去的地方。 该--add-drop-database选项在and语句DROP之前添加语句为新语句扫清道路。CREATEUSE
mysqldump
有一个--add-drop-database
选项可以为您将它们放入文件中。它将在文件中的每个数据库之前添加:
为了任何不熟悉魔术评论的人的利益,这不是评论。这是一条将由 MySQL 4.00.00 及更高版本执行的语句,伪装成向后兼容的注释。
而且,当然,这假设您的数据库和我的一样,称为“会计”。
但请注意,要使其正常工作,您需要使用其中一个或命令行选项来
--add-drop-database
指定要备份的数据库。您“可以”仅在命令行上仅使用数据库名称备份单个数据库,而无需前面的选项...这也可以工作,但实际上不是一个好方法,除非您打算将备份恢复到与您从中获取它的数据库名称不同的数据库名称中,由于该选项的工作方式,即使这不是您的计划,您也可以这样做。--all-databases
--databases YOUR_DB_NAME
mysqldump
--databases
使用
--databases YOUR_DB_NAME
或--all-databases
自动将CREATE DATABASE
和USE your_db_name;
语句添加到文件中每个模式的顶部。这意味着您在恢复时不必指定它,如果您忘记或弄错了,数据仍然会到达正确的位置——“正确”的位置是文件说它应该去的地方。该
--add-drop-database
选项在and语句DROP
之前添加语句为新语句扫清道路。CREATE
USE