关于mysql:如何从mysqldump恢复转储文件?

How do I restore a dump file from mysqldump?

我得到了一个MySQL数据库文件,我需要在我的WindowsServer2008机器上作为数据库进行恢复。

我尝试使用mysql administrator,但出现以下错误:

The selected file was generated by
mysqldump and cannot be restored by
this application.

我该怎么做?


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

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

1
2
3
4
5
C:\> mysql -u root -p

mysql> create database mydb;
mysql> use mydb;
mysql> source db_backup.dump;


它应该像运行这个一样简单:

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

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

1
USE <database-name-here>;

如果它是许多数据库的转储,则use语句已经在其中。

要运行这些命令,请打开命令提示符(在Windows中)和cdmysql.exe可执行文件所在的目录(您可能需要四处查看,这取决于您如何安装mysql,即独立安装或作为包(如wamp)的一部分)。一旦你在那个目录中,你应该能够像我上面看到的那样输入命令。


您只需运行以下命令:

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

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

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

要运行这些命令,请打开命令提示符(在Windows中)和cdmysql.exe可执行文件所在的目录(您可能需要四处查看,这取决于您如何安装mysql,即独立安装或作为包(如wamp)的一部分)。一旦你在那个目录中,你就可以只输入命令。


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

看这里-第3步:这样你就不需要使用声明了


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

1
mysql -uroot -p

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

1
2
3
create database new_db;
use new_db;
\. dumpfile.sql

根据创建转储文件时使用的选项,详细信息会有所不同。


运行命令进入数据库

1
 # mysql -u root -p

输入用户的密码,然后创建新数据库

1
2
mysql> create database MynewDB;
mysql> exit

并使exit.afetr.run这个命令

1
# mysql -u root -p  MynewDB < MynewDB.sql

然后输入db并键入

1
2
3
4
mysql> show databases;
mysql> use MynewDB;
mysql> show tables;
mysql> exit

就这样……您的转储将从一个数据库恢复到另一个数据库

或者有另一种方法进行转储恢复

1
# mysql -u root -p

然后输入db并键入

1
2
3
4
5
6
mysql> create database MynewDB;
mysql> show databases;
mysql> use MynewDB;
mysql> source MynewDB.sql;
mysql> show tables;
mysql> exit


我让它按照这些步骤工作&hellip;

  • 打开mysql administrator并连接到服务器

  • 选择左侧的"目录"

  • 右键单击左下方的框并选择"创建新架构"

    mysql管理员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安装文件夹

  • 执行命令:

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

    &hellip;其中"root"是用户的名称,"dbn"是数据库名称,"c:dbn_20080912.dump"是mysqldump.dump文件的路径/文件名。

    mysql dump restore命令行http://img388.imageshack.us/img388/2489/cmdjx0.th.gif放大图像

  • 享受!


  • 您可以尝试使用sqlyog"执行SQL脚本"工具导入SQL/dump文件。

    enter image description here


    如果要查看转储的进度,请尝试以下操作:

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

    您当然需要安装"pv"。此命令仅在*nix上有效。


    1
    ./mysql -u <username> -p <password> -h <host-name like localhost> <database-name> < db_dump-file


    作为先前答案的具体示例:

    我需要还原备份,以便将其导入/迁移到SQL Server。我只安装了MySQL,但没有将其注册为服务,也没有将其添加到我的路径中,因为我不需要保持它的运行。

    我使用Windows资源管理器将转储文件放入C:codedump.sql。然后从"开始"菜单项打开mysql。创建了数据库,然后以完整路径运行source命令,如下所示:

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


    使用Linux上创建的200MB转储文件在Windows w/MySQL5.5上进行恢复,我在

    1
    source file.sql

    从mysql提示符中的方法,而不是使用

    1
    mysql  < file.sql

    在命令行上的方法,这导致了一些错误2006"服务器已离开"(在Windows上)

    奇怪的是,在(mysql)安装期间创建的服务引用了一个不存在的my.ini文件。我将"大"示例文件复制到my.ini我已经修改了建议的增长。

    我的价值观是

    1
    2
    3
    4
    [mysqld]
    max_allowed_packet = 64M
    interactive_timeout = 250
    wait_timeout = 250

    如果没有从mysql admin中创建备份/转储,则不能使用该菜单。不过值得一试。如果您选择用复选框"忽略错误",它会说它成功完成了,尽管它显然只导入了一小部分行就退出了……这是一个转储,请注意。


    一条用于从mysqldump恢复生成的SQL的行命令

    1
    mysql -u <username> -p<password> -e"source <path to sql file>;"


    您也可以使用MySQL管理员中的恢复菜单。您只需打开备份文件,然后单击恢复按钮。


    如何使用mysqlWorkbench恢复mysql数据库

    可以在查询选项卡中运行DROP和CREATE命令。

    删除当前存在的架构

    1
    DROP DATABASE `your_db_name`;

    创建新架构

    1
    CREATE SCHEMA `your_db_name`;

    打开转储文件

    MySQLWorkbench open sql file

  • 单击在新查询选项卡中打开SQL脚本图标,然后选择数据库转储文件。
  • 然后单击运行SQL脚本…
  • 然后,您可以预览SQL转储脚本的第一行。
  • 然后您将选择默认架构名称
  • 接下来,选择默认的字符集utf8通常是一个安全的赌注,但是您可以从查看类似字符集的预览行中辨别出来。
  • 单击运行
  • 对大型数据库恢复脚本要有耐心,并注意驱动器空间的融化!???