我在做mysql数据库导入的时候数据没有导入,我用的是mysqldump命令完成的。
数据库版本:5.1.44-ndb-7.1.3-cluster-gpl-log
现象是这样的,我先建了一个简单的表然后插入一条数据:
t1表:
+------+------+
| id   | core |
+------+------+
|    1 |    1 |
+------+------+
导出数据库 mysqldump -uroot -p123456 mcvtest > D:\m.txt
查看m.txt文档内容:-- MySQL dump 10.13  Distrib 5.1.44-ndb-7.1.3, for Win32 (ia32)
--
-- Host: localhost    Database: mcvtest
-- ------------------------------------------------------
-- Server version 5.1.44-ndb-7.1.3-cluster-gpl-log
/*!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 gbk */;
/*!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 */;
--
-- Table structure for table `t1`
--
DROP TABLE IF EXISTS `t1`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `t1` (
  `id` int(11) DEFAULT NULL,
  `core` int(11) DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=gbk;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Dumping data for table `t1`
--
LOCK TABLES `t1` WRITE;
/*!40000 ALTER TABLE `t1` DISABLE KEYS */;
INSERT INTO `t1` VALUES (1,1);
/*!40000 ALTER TABLE `t1` ENABLE KEYS */;
UNLOCK TABLES;
/*!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-04-15  9:28:46
我看到文档里面有删除表、建表、插入数据三个步骤,然后我再进入数据库把表里的内容都删了,用mysqldump导入:
mysqldump -uroot -p123456 mcvtest < D:\m.txt
终端上面显示:-- MySQL dump 10.13  Distrib 5.1.44-ndb-7.1.3, for Win32 (ia32)
--
-- Host: localhost    Database: mcvtest
-- ------------------------------------------------------
-- Server version       5.1.44-ndb-7.1.3-cluster-gpl-log
/*!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 gbk */;
/*!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 */;
--
-- Table structure for table `t1`
--
DROP TABLE IF EXISTS `t1`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `t1` (
  `id` int(11) DEFAULT NULL,
  `core` int(11) DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=gbk;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Dumping data for table `t1`
--
LOCK TABLES `t1` WRITE;
/*!40000 ALTER TABLE `t1` DISABLE KEYS */;
/*!40000 ALTER TABLE `t1` ENABLE KEYS */;
UNLOCK TABLES;
/*!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-04-15  9:45:05内容比备份的m.txt少了这个字符串:INSERT INTO `t1` VALUES (1,1);也就是说没有执行数据导入
为了进一步验证,我干脆把t1表也删除了,数据库还保存着,再导入,终端打印出:-- MySQL dump 10.13  Distrib 5.1.44-ndb-7.1.3, for Win32 (ia32)
--
-- Host: localhost    Database: mcvtest
-- ------------------------------------------------------
-- Server version       5.1.44-ndb-7.1.3-cluster-gpl-log
/*!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 gbk */;
/*!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-04-15  9:48:02
这下发现连建表的语句都没执行,不知道是不是哪里需要设置。

解决方案 »

  1.   

    导入:
    mysql -uroot -p<D:\m.txt
      

  2.   

    mysqldump的dump是备份转储的意思
      

  3.   

    兄弟,起码要加上数据库名吧。mysql -uroot -p databasename <D:\m.txt
      

  4.   

    如果SQL文件中有
    USE DBNAME
    可以不用,一般要加上DBNAME
    mysql -uroot -p databasename <D:\m.txt
      

  5.   


    MYSQLDUMP只是导出工具,导入要用MYSQL初次接触MYSQL,一定要先浏览一下文档。
      

  6.   

    我不知道我遇到的情况怎么解释,导出来的文件里有删除表、新建表、插入数据的语句,但是导入时
    在终端的打印却不完整:
    1. 如果将表全部删除,再用mysqldump导入,终端上没有打印任何建表和插入数据的东西;
    2. 如果表保留,数据删除,再导入,终端上只打印删表建表的信息,没有插入数据的信息;
    3. 如果插入一条数据(0, 0),而备份文件里要插入的数据为(1, 1),再导入,终端上打印插入数据(0, 0), 
       而备份文件里的(1, 1)却没打印也没插入。   这是什么逻辑嘛?
      

  7.   

    导出的语句没有use databasename 。因此你需要在导出的sql前面加上use databasename;
    或者用mysql -u root -pyoupassword <sql文件 方法导入 。而不能直接执行
    mysql>source sql文件或者
    mysql>./sql方式