我正在开发系统上设置一个新项目,但无法创建数据库。我有一个很大的.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 文件。