如何从mysqldump恢复转储文件?
我被给了一个MySQL数据库文件,我需要在Windows Server 2008机器上作为数据库进行恢复。
我尝试使用MySQLpipe理员,但我得到了以下错误:
所选文件由mysqldump生成,不能由此应用程序恢复。
我如何得到这个工作?
它应该像运行这样简单:
mysql -u <user> -p < db_backup.dump
如果转储是单个数据库,则可能需要在文件顶部添加一行:
USE <database-name-here>;
如果它是许多数据库的转储,则使用语句已经在那里。
要运行这些命令,打开一个命令提示符(在Windows中),并cd
到mysql.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中),并cd
到mysql.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转储文件时使用的选项而有所不同。
我按照这些步骤来做到这一点
-
打开MySQLpipe理员并连接到服务器
-
select左侧的“目录”
-
右键单击左下angular的框并select“Create New Schema”
MySQLpipe理员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文件的path/文件名
MySQL转储恢复命令行http://img388.imageshack.us/img388/2489/cmdjx0.th.gif 放大图片
-
请享用!
您可以尝试使用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。