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

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

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

我如何让它工作?


当前回答

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

source file.sql

方法从mysql提示符比用

mysql  < file.sql

在命令行,这导致一些错误2006“服务器已经离开”(在windows)

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

我的价值观是

[mysqld]
max_allowed_packet = 64M
interactive_timeout = 250
wait_timeout = 250

其他回答

假设你已经创建了空白数据库,你也可以像这样从命令行恢复数据库:

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

如果备份/转储不是在MySQL管理中创建的,则不能使用MySQL管理中的Restore菜单。不过还是值得一试。如果你选择“忽略错误”的复选框,它会说它成功完成,尽管它显然只导入了一小部分行…注意,这是在垃圾场。

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

source file.sql

方法从mysql提示符比用

mysql  < file.sql

在命令行,这导致一些错误2006“服务器已经离开”(在windows)

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

我的价值观是

[mysqld]
max_allowed_packet = 64M
interactive_timeout = 250
wait_timeout = 250

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

mysql -uroot -p 

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

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

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