视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
详解Mysql导出数据的几种方式
2020-11-09 20:23:24 责编:小采
文档


MySQL导出数据的目的有很多种,如数据库备份、表结构导出、表数据导出、分析数据采取等。

Part1 select into outfile

先说最短小精悍的select into outfile, 这是小型数据库分析数据最常用的采集数据方式,具体语法如下:
【select 语句】 into outfile 【导出文件名】 【导出参数】

【select语句】是经典的查询SQL,可以指定列、可以有where条件、group、order、limit等。

【导出文件名】是目标文件的完整路径。由于mysql账户的权限问题,通常我们会将文件导出到临时目录,如/tmp/mysql/user/201810.csv

【导出参数】

  • fields terminated by 'str':设置字段之间的分隔符,默认值是"\t"。
  • fields enclosed by 'char':设置包括住字段的值的符号,如单引号、双引号等,默认情况下不使用任何符号。
  • fields optionally enclosed by 'char':设置括住CHAR、VARCHAR和TEXT等字符型字段的分隔符,默认情况下不使用任何符号。
  • fields escaped by 'char':设置转义字符,默认值为"\"。
  • lines starting by 'str':设置每行数据开头的字符,可以为单个或多个字符。默认情况下不使用任何字符。
  • lines terminated by 'char':设置每行数据结尾的字符,可以为单个或多个字符。默认值是"\n"。
  • 譬如:

    select * from platform_user into outfile '/tmp/mysql/user/201810.csv' 
    fields terminated by ',' 
     enclosed by '"'
    lines starting by '\r'
     terminated by '\n';

    如果导出的数据,涉及到中文,打开csv可能会看到乱码。处理乱码,首先要确保数据库支持中文(通常设置UTF8编码即可)

    vim /etc/my.cnf, 添加如下几个选项:

    [client]
    default-character-set=utf8
    [mysqld]
    character_set_server=utf8
    [mysql]
    default-character-set=utf8
    

    即便数据库已经是utf8,导出的文件download本地依然可能有乱码,在服务器上less,tail看到的结果都是正常的?
    在本地环境(windows)用记事本打开csv,另存编码格式ANSI即可,这是由于excel的编码格式决定的。

    Part2 mysqldump导出数据

    作为开发人员或者运维人员,mysqldump使用的频率更高,因为它能做的事情更多。mysqldump属于逻辑备份工具,因为它导出的是结果,多以SQL的形式展示,并不记录数据的变化过程。关于物理备份,可以参照一本名为“MySQL技术内幕”的书籍,其中有详细的描述。

    mysqldump的语法很简单,即

    mysqldump 【options】> dump.sql

    但是options的可选参数却很多,手册上将他分了几大类,链接option、文件option、数据定义DDL option、Debug option、国际化option、集群Replication option、格式 option、性能option、事务option等。感兴趣的同学可以参照MYSQL官方手册的定义,这里仅介绍几种常见的应用场景。

    下载本文
    显示全文
    专题