linux下mysqldump导出数据、表结构,导入数据

导出完整的数据库备份 

Sql代码 
  1. mysqldump -h127.0.0.1 -P3306 -uroot -ppassword --add-locks -q dbname > dbname.sql  


说明:前面这些地址、端口就不说明了,都知道。说下后面的,--add-locks:导出过程中锁定表,完成后回解锁。-q:不缓冲查询,直接导出至标准输出 
如: 

Sql代码 
  1. LOCK TABLES `user` WRITE;  
  2. DROP TABLE IF EXISTS `user`;  
  3. CREATE TABLE `user` (  
  4.   `id` int(10) unsigned NOT NULL AUTO_INCREMENT,  
  5.   `namevarchar(50) NOT NULL DEFAULT '',  
  6. ) ENGINE=MyISAM AUTO_INCREMENT=3 DEFAULT CHARSET=utf8;  
  7. INSERT INTO `userVALUES ('1''name1');  
  8. INSERT INTO `userVALUES ('2''name2');  
  9. UNLOCK TABLES;  


导出完整的数据库表结构 

Sql代码 
  1. mysqldump -h127.0.0.1 -P3306 -uroot -ppassword --add-locks -q -d dbname > dbname.sql  


说明:-d:只导出表结构,不含数据 
如: 

Sql代码 
  1. LOCK TABLES `user` WRITE;  
  2. CREATE TABLE `user` (  
  3.   `id` int(10) unsigned NOT NULL AUTO_INCREMENT,  
  4.   `namevarchar(50) NOT NULL DEFAULT '',  
  5. ) ENGINE=MyISAM AUTO_INCREMENT=3 DEFAULT CHARSET=utf8;  
  6. UNLOCK TABLES;  


导出完整的数据库的数据不含表结构 

Sql代码 
  1. mysqldump -h127.0.0.1 -P3306 -uroot -ppassword --add-locks -q -t dbname.user > dbname.sql  


如: 

Java代码 
  1. LOCK TABLES `user` WRITE;  
  2. INSERT INTO `user` VALUES ('1''name1');  
  3. INSERT INTO `user` VALUES ('2''name2');  
  4. UNLOCK TABLES;  


问题: 

也许有人已经发现了,auto_increment的问题,导出的是表中的值,如果表本身数据很多, 
其值就会很大,如果我要表结构的话,基数就会很大,总感觉不爽。谁有办法请留言。谢啦!!

 

 

导入数据:mysqlimport -u用户名 -p密码 数据库DB 路径(最后的文件名如果是ssdd.txt,则对应导入的表名即为数据库DB下的ssdd)

posted on 2012-12-13 09:55  benlamk  阅读(18848)  评论(0编辑  收藏  举报

导航