【发布时间】:2014-05-22 00:46:44
【问题描述】:
这似乎是一个非常愚蠢的问题,但我没有以任何其他方式学习它,我只是想澄清一下。
我前段时间开始使用 MySQL,为了测试各种场景,我备份了我的数据库。我为此使用了 MySQL 转储:
导出:
mysqldump -hSERVER -uUSER -pPASSWORD --all-databases > 文件名.sql
进口:
mysql -hSERVER -uUSER -pPASSWORD
很简单,到目前为止它运行良好,当我注意到这个“设置”的一个小问题时:它没有完全“重置”数据库和表。例如,如果在创建转储文件后添加了一个附加表,那么如果您导入相同的转储文件,该附加表将不会消失。它本质上只是“更正”已经存在的表并重新创建任何缺少的数据库或表,但不会删除任何其他表,这些表的名称恰好不在转储文件中。
我想要做的是在导入这样的转储文件时完全重置服务器上的所有数据库。最好的解决方案是什么?是否为此目的保留了特殊的导入功能,还是我必须先自己删除数据库?还是这是个坏主意?
【问题讨论】:
-
在不备份的情况下删除数据绝不是个好主意。
-
AFAIK,从 SQL 文件导入不会删除数据,除非 SQL 文件包含 DELETE/DROP 查询。