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

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

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

我如何让它工作?


当前回答

本地mysql:

mysql -u root --password=YOUR_PASS --database=YOUR_DB < ./dump.sql 

如果你使用docker:

docker exec -i DOCKER_NAME mysql -u root --password=YOUR_PASS --database=YOUR_DB < ./dump.sql

其他回答

运行命令进入DB

 # mysql -u root -p 

输入用户密码,然后创建新DB

mysql> create database MynewDB;
mysql> exit

然后退出。Afetr。执行此命令

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

然后进入db并键入

mysql> show databases;
mysql> use MynewDB;
mysql> show tables;
mysql> exit

就是这样........您的转储将从一个DB恢复到另一个DB

或者还有另一种转储恢复的方法

# mysql -u root -p 

然后进入db并键入

mysql> create database MynewDB;
mysql> show databases;
mysql> use MynewDB;
mysql> source MynewDB.sql;
mysql> show tables;
mysql> exit

你只需要运行这个:

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

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

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

要运行这些命令,打开一个命令提示符(在Windows中),并cd到mysql.exe可执行文件所在的目录(你可能需要四处寻找,这取决于你如何安装mysql,即独立或作为WAMP包的一部分)。进入该目录后,您应该能够键入命令。

当我们使用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

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