ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

mysql 大数据进行导出成csv文件

2021-04-15 17:01:36  阅读:299  来源: 互联网

标签:文件 ... INTO runoob 导出 OUTFILE mysql csv SELECT


我们先看一下对比

直接navicat进行数据查找

image

Mysql服务中直接导出

image

直接在数据库服务器上将数据导出成固定文件,并指定格式,gbk格式是可以被csv文件识别的,不会乱码 默认不加格式是utf-8的

SELECT * FROM waybill where created >='2020-11-01' and created <'2020-12-01' INTO OUTFILE '/var/lib/mysql-files/11month.csv' character set gbk FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\r\n' ;

如果导出来的文件太大,EXCEL打不开,EXCEL最高支持一百零几万的数据打开,超过的会被舍弃,这里可以用命令进行拆分成多个文件

Linux split命令用于将一个文件分割成数个。
该指令将大文件分割成较小的文件,在默认情况下将按照每1000行切割成一个小文件。

split -50000 11month.csv 这样会把这个文件按照每五万行拆成一个文件,xaa,xab这样的文件,可以自己给后缀名。

遇到的问题及解决

mysql> SELECT * FROM config_value INTO OUTFILE '/tmp/runoob.txt' FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\r\n';
ERROR 1290 (HY000): The MySQL server is running with the --secure-file-priv option so it cannot execute this statement

这需要看一下mysql 是否允许你自定义文件存储,不允许就按照它指定的目录存储即可 为null即表示你可以随意存储

SHOW VARIABLES LIKE "secure_file_priv";
image

将切割后的文件,即可从服务器上down下来

扩展

使用 SELECT ... INTO OUTFILE 语句导出数据

以下实例中我们将数据表 runoob_tbl 数据导出到 /tmp/runoob.txt 文件中:

mysql> SELECT * FROM runoob_tbl 
    -> INTO OUTFILE '/tmp/runoob.txt';

你可以通过命令选项来设置数据输出的指定格式,以下实例为导出 CSV 格式:

mysql> SELECT * FROM passwd INTO OUTFILE '/tmp/runoob.txt'
    -> FIELDS TERMINATED BY ',' ENCLOSED BY '"'
    -> LINES TERMINATED BY '\r\n';

在下面的例子中,生成一个文件,各值用逗号隔开。这种格式可以被许多程序使用。

SELECT a,b,a+b INTO OUTFILE '/tmp/result.text'
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
LINES TERMINATED BY '\n'
FROM test_table;

SELECT ... INTO OUTFILE 语句有以下属性:

LOAD DATA INFILE是SELECT ... INTO OUTFILE的逆操作,SELECT句法。为了将一个数据库的数据写入一个文件,使用SELECT ... INTO OUTFILE,为了将文件读回数据库,使用LOAD DATA INFILE。
SELECT...INTO OUTFILE 'file_name'形式的SELECT可以把被选择的行写入一个文件中。该文件被创建到服务器主机上,因此您必须拥有FILE权限,才能使用此语法。
输出不能是一个已存在的文件。防止文件数据被篡改。
你需要有一个登陆服务器的账号来检索文件。否则 SELECT ... INTO OUTFILE 不会起任何作用。
在UNIX中,该文件被创建后是可读的,权限由MySQL服务器所拥有。这意味着,虽然你就可以读取该文件,但可能无法将其删除。

标签:文件,...,INTO,runoob,导出,OUTFILE,mysql,csv,SELECT
来源: https://www.cnblogs.com/brightgreat/p/14663336.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有