Wil*_*ill 3 mysql backup restore
我正在从 mysqldump 恢复备份,并注意到如果我向数据库添加了内容(以新表的形式),它们会在恢复后保留下来。我可以返回并删除这些表以恢复到原始状态,但由于我需要测试迁移,我希望在转储期间将数据库恢复到其状态,而无需手动进入并删除表。
我想我可以DROP Database XXX在恢复之前做一个,但这会妨碍我当前的恢复方法吗?
mysqldump有一个--add-drop-database选项可以将这些内容放入文件中。
它将在文件中的每个数据库之前添加以下内容:
/*!40000 DROP DATABASE IF EXISTS `accounting`*/;
Run Code Online (Sandbox Code Playgroud)
为了不熟悉魔法评论的人的利益,这不是评论。这是一条将由 MySQL 4.00.00 及更高版本执行的语句,伪装成向后兼容性的注释。
当然,这假设您的数据库和我的数据库一样,称为“会计”。
但请注意,要正常工作,您需要使用或 的命令行选项--add-drop-database指定要备份的数据库。您“可以”仅使用命令行上的数据库名称来备份单个数据库,而无需在其前面添加选项...这也可以,但实际上不是一个好方法,除非您打算这样做将备份恢复到与您从中获取备份的数据库名称不同的数据库名称中,由于该选项的工作方式,即使这不是您的计划,您也可能会这样做。--all-databases--databases YOUR_DB_NAMEmysqldump--databases
使用--databases YOUR_DB_NAMEor--all-databases自动将CREATE DATABASE和USE your_db_name;语句添加到文件中每个模式的顶部。这意味着您在恢复时不必指定它,并且如果您忘记或弄错了,数据仍然会到达正确的位置 - “正确”的位置是文件指示它应该到达的位置。
该选项在and语句之前--add-drop-database添加DROP语句,为新语句扫清道路。CREATEUSE
| 归档时间: |
|
| 查看次数: |
3270 次 |
| 最近记录: |