无法使用 SQL 转储文件恢复 Mysql 数据库

无法使用 SQL 转储文件恢复 Mysql 数据库

我正在开发系统上设置一个新项目,但无法创建数据库。我有一个很大的.sql文件要用来创建数据库。

首先,我创建了一个名为的空数据库adpsnet_Directory并执行了此命令 -

mysqldump -uroot -p  adpsnet_Directory < adpsnet_Directory.sql 

但它显示了这一点,但实际上什么也没有发生 -

-- MySQL dump 10.13  Distrib 5.1.41, for pc-linux-gnu (i686)
--
-- Host: localhost    Database: adpsnet_Directory
-- ------------------------------------------------------
-- Server version       5.1.41

/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
/*!40103 SET TIME_ZONE='+00:00' */;
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;

/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;

-- Dump completed on 2011-02-28 20:48:56

然后我读这里上述命令仅在数据库不存在时才有效。我有一个空数据库。因此,我删除了该数据库,但出现了此错误 -

-- MySQL dump 10.13  Distrib 5.1.41, for pc-linux-gnu (i686)
--
-- Host: localhost    Database: adpsnet_Directory
-- ------------------------------------------------------
-- Server version       5.1.41
 ...
...
...

mysqldump: Got error: 1049: Unknown database 'adpsnet_Directory' when selecting the database

然后我在有和没有空数据库的情况下尝试了以下命令 -

mysqlimport -uroot adpsnet_Directory adpsnet_Directory.sql

结果如下:

在场 -

mysqlimport: Error: 1146, Table 'adpsnet_Directory.adpsnet_Directory' doesn't exist, when using table: adpsnet_Directory

缺席 -

mysqlimport: Error: 1049 Unknown database 'adpsnet_Directory'

现在太晚了,我不明白发生了什么。请指点一下……我遗漏了什么?

谢谢

答案1

您需要将“mysqldump”替换为“mysql” - 否则一切看起来都正确。不过,您可能确实希望空数据库存在。MySQL 转储文件包含有关构建表等的所有说明,因此您不需要使用 mysqlimport。

mysql -uroot -p  adpsnet_Directory < adpsnet_Directory.sql

也就是说,这是假设您首先使用 mysqldump 创建转储文件。

答案2

Recovery Toolbox 的一款名为 SQL Server Repair Database 的产品在低系统要求下启动,它能够显示恢复数据库的结果。该工具在恢复期间不会修改源 .sql 文件。

相关内容