Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1399465
  • 博文数量: 277
  • 博客积分: 2551
  • 博客等级: 少校
  • 技术积分: 3918
  • 用 户 组: 普通用户
  • 注册时间: 2011-02-21 22:46
文章分类

全部博文(277)

文章存档

2017年(3)

2016年(9)

2015年(65)

2014年(27)

2013年(85)

2012年(61)

2011年(27)

分类: Mysql/postgreSQL

2013-01-03 00:36:54

  在应用场景上,配置MySQL主从前,需要将Master中已有的数据备份至Slave机器中。

  MySQL数据库的导出(包括表结构和数据)

     mysqldump -u用户名 -p密码 数据库名 > 数据库.sql

  MySQL数据库表结构导出

    mysqldump -u用户名 -p密码 -d 数据库名| sed 's/AUTO_INCREMENT=[0-9]*\b//'  > 数据库.sql

 MySQL中的数据库的导入

     mysql  数据库名 < 数据库.sql


导入数据库后,发现存储过程并没有一并带过来,所以需要导出存储过程

   MySQL存储过程的导出

     mysqldump -ntd -R --triggers=false 数据库名 > sp.sql

   MySQL存储过程的导入

     mysql  数据库名 < sp.sql


MySQL本身还支持文本文件的数据导入导出

    mysqlimport可以完成文本数据的直接导入

         基本用法 mysqlimport -L -u username -p -h 127.0.0.1 dbname  table_name.dat
                 mysqlimport有时候还需要--fields-terminated-by 来指定记录中的字段分隔符
                                                      --fields-enclosed-by 来指定记录之间的分隔符,一般为'\n'
                mysqlimport默认字段分隔符是单空格或tab,记录分隔符默认是'\n'

         当导入一个有百万行记录的表时,用这种方式尤其比较快,但是表的索引可以采取导入数据后重建,
               也可以建表就是创建索引。

         遇到的情况是表的引擎为myisam时,先导入表的数据,然后再重建索引的方式比较快。

         mysql命令中也可以导入数据
            load data infile '绝对路径文件' into table 表名 fields terminated by '字段分隔符' lines terminated by '行分隔符';

         mysqlimport与load data infile的区别可能是mysqlimport在导入数据时,会比load data 做更严格的校验,例如,字符集
        在构造原始的数据的时候,一旦有字符数据要注意字符集,分隔符的替换可以使用sed来完成处理
        sed可完成tab到空格的替换   sed -e 's/[[:space:]][[:space:]]*/ /g'
                      空格到其他字符的替换  sed -e 's/[ ][ ]*/,/g' 
  数据导出成文本
       在mysql命令行中导出
           select field_names from table_name  into outfile 'table_name.dat'
       在命令行导出sql语句的方式
            mysqldump -h db_host_ip  -u root -p 数据库名 表名 > 表名.dat



阅读(2780) | 评论(0) | 转发(0) |
0

上一篇:mysql主从配置

下一篇:mysql proxy的配置过程

给主人留下些什么吧!~~