如何从mysqldump恢复转储文件?

我被给了一个MySQL数据库文件,我需要在Windows Server 2008机器上作为数据库进行恢复。

我尝试使用MySQLpipe理员,但我得到了以下错误:

所选文件由mysqldump生成,不能由此应用程序恢复。

我如何得到这个工作?

它应该像运行这样简单:

mysql -u <user> -p < db_backup.dump 

如果转储是单个数据库,则可能需要在文件顶部添加一行:

 USE <database-name-here>; 

如果它是许多数据库的转储,则使用语句已经在那里。

要运行这些命令,打开一个命令提示符(在Windows中),并cdmysql.exe可执行文件所在的目录(你可能要仔细看看它,这取决于你如何安装mysql,也就是独立的或者像WAMP这样的软件包的一部分)。 一旦你在这个目录下,你应该可以像上面那样input命令。

如果要还原的数据库尚不存在,则需要先创build它。

在命令行中,如果您位于包含转储的文件的同一目录中,请使用以下命令(使用适当的replace):

 C:\> mysql -u root -p mysql> create database mydb; mysql> use mydb; mysql> source db_backup.dump; 

你只需要运行这个:

mysql -p -u[user] [database] < db_backup.dump

如果转储包含多个数据库,则应该省略数据库名称:

mysql -p -u[user] < db_backup.dump

要运行这些命令,打开一个命令提示符(在Windows中),并cdmysql.exe可执行文件所在的目录(你可能要仔细看看它,这取决于你如何安装mysql,也就是独立的或者像WAMP这样的软件包的一部分)。 一旦你在这个目录中,你应该能够input命令。

 mysql -u username -p -h localhost DATA-BASE-NAME < data.sql 

看看这里 – 步骤3 :这种方式你不需要USE语句

当我们使用mysqldump创build一个转储文件时,它包含的是一个用于重新创build数据库内容的大型SQL脚本。 所以我们通过启动MySQL的命令行客户端来恢复它:

 mysql -uroot -p 

(其中root是MySQL的pipe理员用户名),一旦连接到数据库,我们需要命令创build数据库并读取文件:

 create database new_db; use new_db; \. dumpfile.sql 

详细信息将根据创build转储文件时使用的选项而有所不同。

我按照这些步骤来做到这一点

  1. 打开MySQLpipe理员并连接到服务器

  2. select左侧的“目录”

  3. 右键单击左下angular的框并select“Create New Schema”

    MySQLpipe理员http://img204.imageshack.us/img204/7528/adminsx9.th.gif 放大图片

  4. 命名新的模式(例如:“dbn”)

    MySQL新模式http://img262.imageshack.us/img262/4374/newwa4.th.gif 放大图片

  5. 打开Windows命令提示符(cmd)

    Windows命令提示符http://img206.imageshack.us/img206/941/startef7.th.gif 放大图片

  6. 将目录更改为MySQL安装文件夹

  7. 执行命令:

     mysql -u root -p dbn < C:\dbn_20080912.dump 

    …其中“root”是用户的名称,“dbn”是数据库名称,“C:\ dbn_20080912.dump”是mysqldump .dump文件的path/文件名

    MySQL转储恢复命令行http://img388.imageshack.us/img388/2489/cmdjx0.th.gif 放大图片

  8. 请享用!

您可以尝试使用SQLyog的 “执行SQL脚本”工具来导入sql / dump文件。

在这里输入图像描述

如果你想查看转储的进度,试试这个:

pv -i 1 -p -t -e / path / to / sql / dump | mysql -u USERNAME -p DATABASE_NAME

你当然需要安装“pv”。 该命令仅适用于* nix。

使用在Linux上创build的200MB转储文件在Windows上恢复w / mysql 5.5,我有更多的成功

 source file.sql 

从mysql提示的方式比用

 mysql < file.sql 

方法在命令行上,导致一些错误2006“服务器已经消失”(在Windows上)

奇怪的是,在(mysql)安装过程中创build的服务引用了一个不存在的my.ini文件。 我将“large”示例文件复制到my.ini中,我已经使用build议的增量进行了修改。

我的价值观是

 [mysqld] max_allowed_packet = 64M interactive_timeout = 250 wait_timeout = 250 
 ./mysql -u <username> -p <password> -h <host-name like localhost> <database-name> < db_dump-file 

如果没有从那里创build备份/转储,则不能使用MySQL Admin中的恢复菜单。 这值得一试。 如果你select“忽略错误”的checkbox,它会说它已经成功完成了,尽pipe只有一小部分的行被导入,但是这只是一个转储,请注意。

作为以前答案的一个具体例子:

我需要恢复备份,所以我可以导入/迁移到SQL Server。 我只安装了MySql,但没有注册为服务或将其添加到我的path,因为我没有必要保持运行。

我用Windows资源pipe理器把我的转储文件放在C:\ code \ dump.sql中。 然后从开始菜单项打开MySql。 创build数据库,然后使用完整path运行源命令,如下所示:

 mysql> create database temp mysql> use temp mysql> source c:\code\dump.sql 

您也可以使用MySQL Administrator中的恢复菜单。 您只需打开备份文件,然后单击还原button。