ICode9

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

MySQL查询导出数据【转】

2022-08-31 09:33:21  阅读:176  来源: 互联网

标签:code secure into MySQL 导出 查询 outfile mysql xls


情况说明

习惯使用navicat工具了,在navicat里面操作查询,然后导出都很方便
直到今天,查询一个表,一共有105W条数据,然后导出到Excel,速度那叫一个慢。

Linux服务器上导出

主要是用到into outfile '/path'

mysql> SELECT b.station_code,a.* into outfile '/tmp/a.xls' from table1 a JOIN table2 on a.CODE = b.sensor_code WHERE a.mark = 1;
ERROR 1290 (HY000): The MySQL server is running with the --secure-file-priv option so it cannot execute this statement

提示出错
原因是mysql默认了一个文件路径,我们不能放在别的地方,除非修改了这个参数

查看mysql默认导出文件路径

show variables like '%secure%';

Variable_name Value
require_secure_transport OFF
secure_auth ON
secure_file_priv /var/lib/mysql-files/

 

于是休息into outfile '/path'为into outfile '/var/lib/mysql-files/a.xls'

mysql> SELECT b.station_code,a.* into outfile '/var/lib/mysql-files/a.xls' from hw_data_recvcalibratesend a JOIN hw_station b on a.SNCODE = b.sensor_code WHERE a.CalbrateMark = 1;
Query OK, 1075906 rows affected (7.43 sec)

 

服务器效率还是牛。。。。

修改参数

修改配置可修改mysql配置文件,查看是否有

secure_file_priv =
这样一行内容,如果没有,则手动添加,

secure_file_priv = /home
表示限制为/home文件夹

secure_file_priv =
表示不限制目录,等号一定要有,否则mysql无法启动

带字段名称

使用上面的方法直接导出到xls文档中是不带字段名称的
有的时候会需要显示名称
那么可以用Union all的方法来做

SELECT
'recID', #Excel表头中的字段名
'_id' #Excel表头中的字段名
UNION ALL
SELECT
recID, #查询的数据字段
_id #查询的数据字段
FROM
tableName a #表名
WHERE
a.timeField BETWEEN '2020-11-09 00:00:00'
AND '2020-11-10 13:10:00' INTO OUTFILE '/var/lib/mysql-files/Excel001.xls';

 

中文乱码

CHARACTER SET gbk

 

SELECT b.station_code,a.* into outfile '/var/lib/mysql-files/a.xls' CHARACTER SET gbk from hw_data_recvcalibratesend a JOIN hw_station b on a.SNCODE = b.sensor_code WHERE a.CalbrateMark = 1;


————————————————

转自

版权声明:本文为CSDN博主「再看我把你吃掉」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/zz_aiytag/article/details/109307697

参考

mysql数据库表如何导出到excel-木庄网络博客
http://www.muzhuangnet.com/show/44405.html

标签:code,secure,into,MySQL,导出,查询,outfile,mysql,xls
来源: https://www.cnblogs.com/paul8339/p/16641816.html

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

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

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

ICode9版权所有