我连一句简单的mysqldump导入数据都没做成功

mysqlcluster 2011-04-15 09:57:26
我在做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
这下发现连建表的语句都没执行,不知道是不是哪里需要设置。
...全文
1278 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
ilykty 2011-12-02
  • 打赏
  • 举报
回复
导出的语句没有use databasename 。因此你需要在导出的sql前面加上use databasename;
或者用mysql -u root -pyoupassword <sql文件 方法导入 。而不能直接执行
mysql>source sql文件或者
mysql>./sql方式
mysqlcluster 2011-04-15
  • 打赏
  • 举报
回复
我不知道我遇到的情况怎么解释,导出来的文件里有删除表、新建表、插入数据的语句,但是导入时
在终端的打印却不完整:
1. 如果将表全部删除,再用mysqldump导入,终端上没有打印任何建表和插入数据的东西;
2. 如果表保留,数据删除,再导入,终端上只打印删表建表的信息,没有插入数据的信息;
3. 如果插入一条数据(0, 0),而备份文件里要插入的数据为(1, 1),再导入,终端上打印插入数据(0, 0),
而备份文件里的(1, 1)却没打印也没插入。

这是什么逻辑嘛?
ACMAIN_CHM 2011-04-15
  • 打赏
  • 举报
回复
[Quote]用mysqldump导入:
mysqldump -uroot -p123456 mcvtest < D:\m.txt
终端上面显示:[/Quote]

MYSQLDUMP只是导出工具,导入要用MYSQL

初次接触MYSQL,一定要先浏览一下文档。

[Quote=MySQL 5.1参考手册]
5.9.2.2. 为恢复进行备份
现在假设在星期三上午8点出现了灾难性崩溃,需要使用备份文件进行恢复。恢复时,我们首先恢复最后的完全备份(从星期日下午1点开始)。完全备份文件是一系列SQL语句,因此恢复它很容易:

shell> mysql < backup_sunday_1_PM.sql
在该点,数据恢复到星期日下午1点的状态。要想恢复从那时起的更改,我们必须使用增量备份,也就是,gbichot2-bin.000007和gbichot2-bin.000008二进制日志文件。根据需要从备份处取过这些文件,然后按下述方式处理:

shell> mysqlbinlog gbichot2-bin.000007 gbichot2-bin.000008 | mysql
我们现在将数据恢复到星期二下午1点的状态,但是从该时刻到崩溃之间的数据仍然有丢失。要想恢复,我们需要MySQL服务器将MySQL二进制日志保存到安全的位置(RAID disks, SAN, ...),应为与数据文件的保存位置不同的地方,保证这些日志不在毁坏的硬盘上。(也就是,我们可以用--log-bin选项启动服务器,指定一个其它物理设备上的与数据目录不同的位置。这样,即使包含该目录的设备丢失,日志也不会丢失)。如果我们执行了这些操作,我们手头上会有gbichot2-bin.000009文件,我们可以用它来恢复大部分最新的数据更改,而不会丢失到崩溃时的数据。


[/Quote]
WWWWA 2011-04-15
  • 打赏
  • 举报
回复
如果SQL文件中有
USE DBNAME
可以不用,一般要加上DBNAME
mysql -uroot -p databasename <D:\m.txt
mysqlcluster 2011-04-15
  • 打赏
  • 举报
回复
兄弟,起码要加上数据库名吧。mysql -uroot -p databasename <D:\m.txt
[Quote=引用 1 楼 wwwwa 的回复:]
导入:
mysql -uroot -p<D:\m.txt
[/Quote]
rucypli 2011-04-15
  • 打赏
  • 举报
回复
mysqldump的dump是备份转储的意思


WWWWA 2011-04-15
  • 打赏
  • 举报
回复
导入:
mysql -uroot -p<D:\m.txt

56,687

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧