我得到了一个MySQL数据库文件,我需要将其恢复为Windows Server 2008机器上的数据库。

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

所选文件由 Mysqldump,不能恢复 这个应用程序。

我如何让它工作?


当前回答

如果你已经在mysql提示,并假设你的转储文件转储。Sql,那么我们还可以使用如下命令来恢复转储

mysql> \. dump.sql

如果您的转储大小较大,请将max_allowed_packet值设置为更高。设置此值将帮助您更快地恢复转储。

其他回答

作为前面回答的一个具体例子:

我需要恢复备份,以便导入/迁移到SQL Server。我只安装了MySql,但没有把它注册为服务,也没有把它添加到我的路径中,因为我不需要让它一直运行。

我用windows资源管理器把我的转储文件放在C:\code\dump.sql。然后从开始菜单项中打开MySql。创建DB,然后运行source命令,使用完整路径,如下所示:

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

如果你已经在mysql提示,并假设你的转储文件转储。Sql,那么我们还可以使用如下命令来恢复转储

mysql> \. dump.sql

如果您的转储大小较大,请将max_allowed_packet值设置为更高。设置此值将帮助您更快地恢复转储。

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

mysql -uroot -p 

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

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

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

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

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

在命令行中,如果你在包含转储文件的同一个目录中,使用这些命令(使用适当的替换):

C:\> mysql -u root -p

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