尝试恢复数据库时mysqldump会做什么?

时间:2013-04-03 17:30:57

标签: mysql mysqldump

我一直在努力寻找一种备份和恢复数据库的好方法,并且遇到了mysqldump。我一直在使用命令提示符来访问可执行文件,我可以使用以下命令在sql文件中创建数据库的备份:

mysqldump.exe -u [username] -p [databasename] -h localhost > [path]\backup.sql  

然后我输入密码才能执行。
如果不明白:

[username]=my username for accessing the database  
[databasename]=my name for the database that I'm trying to back up  
[path]=the folder path to where I want to save my back up.  

使用此命令,我可以创建一个备份,我已经查看并发现恢复它的方法只是翻转> to <所以你会得到这个:

mysqldump.exe -u [username] -p [databasename] -h localhost > [path]\backup.sql  

然后我输入密码才能执行。
当它执行时,它打印出它正在转储的内容(如果我删除了一些应该恢复的表,则不会创建新表)。我认为它只添加了表中尚未存在的值,因为我添加了一行,当我尝试恢复以前版本的数据库时它没有被删除。
我可以使用客户端或命令提示符命令正常执行backup.sql文件,但我只是想了解为什么mysqldump没有按照我的预期执行。

1 个答案:

答案 0 :(得分:0)

mysqldump仅用于备份,您无法使用它从转储加载数据。 mysqldump生成一个转储文件,该文件只包含重新创建数据库结构并使用数据重新填充数据库结构所必需的SQL命令。

要将转储恢复到mysql.exe

当你这样做时

mysql -u[username] -p[root_password] [database_name] < dumpfile.sql

你基本上登录MySQL,然后你要求它执行dumpfile.sql中保存的所有SQL操作就这么简单。