如何从mysqldump恢复转储文件?
我得到了一个MySQL数据库文件,需要将其还原为Windows Server 2008计算机上的数据库。
我尝试使用MySQL Administrator,但出现以下错误:
The selected file was generated by mysqldump and cannot be restored by this application.
我该如何工作?
解决方案
它应该像运行此命令一样简单:
mysql -u <user> -p < db_backup.dump
如果转储属于单个数据库,则可能必须在文件顶部添加一行:
USE <database-name-here>;
如果它是许多数据库的转储,则use语句已在其中。
要运行这些命令,请打开命令提示符(在Windows中),并在" mysql.exe"可执行文件所在的目录中打开" cd"(我们可能需要仔细检查一下,这取决于安装方式)。 mysql,即独立或者作为WAMP之类的软件包的一部分)。进入该目录后,我们应该只需键入上面的命令即可。
当我们用mysqldump制作转储文件时,它包含的是一个很大的SQL脚本,用于重新创建数据库内容。因此,我们通过启动MySQL命令行客户端来还原它:
mysql -uroot -p
(其中root是MySQL的管理员用户名),一旦连接到数据库,我们就需要命令来创建数据库并读取其中的文件:
create database new_db; use new_db; \. dumpfile.sql
根据创建转储文件时使用的选项,详细信息会有所不同。
我们只需要运行以下命令:
mysql -p -u[user] [database] < db_backup.dump
如果转储包含多个数据库,则应省略数据库名称:
mysql -p -u[user] < db_backup.dump
要运行这些命令,请打开命令提示符(在Windows中),并在mysql.exe可执行文件所在的目录中打开cd(我们可能需要仔细检查一下,这取决于安装方式) mysql,即独立的或者作为WAMP之类的软件包的一部分)。进入该目录后,我们应该只需键入命令即可。
我按照以下步骤工作
- 打开MySQL Administrator并连接到服务器
- 选择左侧的"目录"
- 右键单击左下角的框,然后选择"创建新架构" MySQL Administrator http://img204.imageshack.us/img204/7528/adminsx9.th.gif放大图像
- 将新模式命名(例如:" dbn")MySQL新模式http://img262.imageshack.us/img262/4374/newwa4.th.gif放大图像
- 打开Windows命令提示符(cmd)Windows命令提示符http://img206.imageshack.us/img206/941/startef7.th.gif放大图像
- 将目录更改为MySQL安装文件夹
- 执行命令:
mysql -u root -p dbn < C:\dbn_20080912.dump
其中" root"是用户名," dbn"是数据库名," C:\ dbn_20080912.dump"是mysqldump .dump文件的路径/文件名。MySQL dump restore命令行http:// img388. imageshack.us/img388/2489/cmdjx0.th.gif放大图像
- 享受!
我们也可以使用MySQL Administrator中的还原菜单。我们只需要打开备份文件,然后单击"还原"按钮。
如果要还原的数据库尚不存在,则需要首先创建它。
在命令行上,如果我们位于包含转储文件的目录中,请使用以下命令(带有适当的替换):
C:\> mysql -u root -p mysql> create database mydb; mysql> use mydb; mysql> source db_backup.dump;
如果不是从那里创建备份/转储的,则不能使用MySQL Admin中的Restore菜单。虽然值得一试。如果我们选择使用该复选框"忽略错误",它将表示已成功完成,尽管它显然仅以导入的一小部分行退出...这是转储,请注意。