posts - 297,  comments - 1618,  trackbacks - 0
原文出处:http://bbs.mysql.cn/viewthread.php?tid=72&extra=page%3D1%26filter%3Ddigest
关于MYSQL数据的导出导入与版本的转换

最近看到好多人在询问mysql 导入导出的问题,于是就简单的总结一些我的使用经验,供大家参考,有不合理的地方欢迎交流!

一、Mysql 数据的导出

   有的站长经常用一种最直接的办法就是拷贝数据库文件夹的办法,这个方法确实简单,但是不提倡,在跨版本或者跨不同字符集系统是很容易出问题。再说了数据库4.1版本有两种存储数据的方式在配置的时候可选,一种是和以前一样的每个数据库存放在单独的文件夹里,另一种叫什么来着我忘了,这种所有的数据库都放在一个文件里,巨大的一个文件!,所以对于后者就不可以用拷贝的方法了,用什么呢?下面介绍:

   就是mysql 自带的工具 mysqldump ,这个工具十分强大,可以导出数据,并且可以导出不同版本的数据、也可以导出用于其他数据库的数据,太牛了。 这个工具实在命令行、cmd下用的 ,如果你的msyql/bin目录没有配置在系统的环境变量里,就先cd到mysql/bin目录。
   
1、    先介绍简单得导出: mysqldump -u 数据库用户名 -p  数据库名称 [表名] > 导出到文件的路径名

   例如:我要导出 test_db 这个数据库  我的数据库用户为 root 没有密码(没有密码就不用加 -p 了):
            mysqldump -u root test_db > c:\test.sql    这样就可以到处test这个数据库了
           如果我要导出 test 数据库中的user 表  用 ajin 这个用户 密码是 123
           mysqldump -u ajin -p test_db user >c:\test_user_table.sql   回车后提示输入密码就可以了

2、 在导出过程中改变数据库默认的字符集
        
   例如: 我要导出 test_db 这个数据库  转换编码为 utf8 (utf8 我最常用的)
  
      mysqldump -u ajin -p --default-character-set=utf8  test_db >c:\test.sql    就可以了  
     转换成其他字符只需替换 utf8 就可以了

3、导出不同版本数据或者导出给数据库用的数据

  例如:我的数据库 Mysql 4.1 的 我要导出一个 默认字符集 utf8 的 4.0版本的数据

    mysqldump -u ajin -p test_db --compatible=mysql40 --default-character-set=utf8 test_db >c:\test.sql   

   就可完成了所谓的降级 --compatible= 可以跟得参数有 mysql323 mysql40 oracle mssql db2 等等

导出就介绍这些常用的,其实还有好多好多。。省略一千字.....

二 数据的导入  

   这个相对就比较简单了,   这个在命令行、cmd下用的 ,如果你的msyql/bin目录没有配置在系统的环境变量里,就先cd到mysql/bin目录。
  
  比如我要导入 test.sql 这个数据到  discuz_db 这个数据库

  mysql -u ajin -p discuz_db <c:\test.sql  回车提示输入密码 ,如果没有密码的用户 就不用加 -p 了

好了就先总结这么多,欢迎大家交流,其中不免会有错误,请多指教~~


http://ajin.blog.im286.com/archives/2005/902.shtml

posted on 2007-07-03 18:01 阿蜜果 阅读(1121) 评论(2)  编辑  收藏 所属分类: MySql


FeedBack:
# re: 【转】关于MYSQL数据的导出导入与版本的转换
2007-07-04 14:32 | Nothingstop
你好!我在导入MySql数据库时遇到这样的问题请帮忙分析一下是什么原因。
我的MySql默认字符编码是gb2312,如果通过Tool-->Import from SQL Statement来执行这个脚本,那么在数据库里的中文字符就会是乱码,但是我只要手动的先执行create table 再手动的执行insert,插入的值就不是乱码,你说这是什么原因?谢谢啦!

CREATE TABLE `activity` (
`activity_id` varchar(20) NOT NULL,
`activity_name` varchar(50) default NULL,
`delivery_id` varchar(20) NOT NULL,
`activity_startTime` datetime default NULL,
`activity_endTime` datetime default NULL,
`owner` varchar(10) default NULL,
`checker` varchar(10) default NULL,
`activity_budget` decimal(20,2) default NULL,
`progress` int(5) default NULL,
PRIMARY KEY (`activity_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

INSERT INTO `activity` VALUES ('1.4.1', '生气', '1.4', '2007-06-28 09:23:53', '2007-06-29 09:36:18', 'vera', 'joey', '1000.00', '20');
INSERT INTO `activity` VALUES ('1.4.2', '劝说', '1.4', '2007-06-29 09:36:18', '2007-06-29 09:58:18', 'joey', 'vera', '1.00', '60');  回复  更多评论
  
# re: 【转】关于MYSQL数据的导出导入与版本的转换
2007-07-05 19:01 | Thomas
不错的文章,收藏了。  回复  更多评论
  

只有注册用户登录后才能发表评论。


网站导航:
 
<2007年7月>
24252627282930
1234567
891011121314
15161718192021
22232425262728
2930311234

      生活将我们磨圆,是为了让我们滚得更远——“圆”来如此。
      我的作品:
      玩转Axure RP  (2015年12月出版)
      

      Power Designer系统分析与建模实战  (2015年7月出版)
      
     Struts2+Hibernate3+Spring2   (2010年5月出版)
     

留言簿(262)

随笔分类

随笔档案

文章分类

相册

关注blog

积分与排名

  • 积分 - 2285123
  • 排名 - 3

最新评论

阅读排行榜

评论排行榜