mysql查询结果输出到文件

mysql查询结果导出/输出/写入到文件

方法一:
直接执行命令:
mysql> select count(1) from table  into outfile ‘/tmp/test.xls‘;

Query OK, 31 rows affected (0.00 sec)
在目录/tmp/下会产生文件test.xls
遇到的问题:
mysql> select count(1) from table   into outfile ‘/data/test.xls‘;
报错:
ERROR 1 (HY000): Can‘t create/write to file ‘/data/test.xls‘ (Errcode: 13)
可能原因:mysql没有向/data/下写的权限

方法二:
查询都自动写入文件:
mysql> pager cat > /tmp/test.txt ;
PAGER set to ‘cat > /tmp/test.txt‘
之后的所有查询结果都自动写入/tmp/test.txt‘,并前后覆盖
mysql> select * from table ;
30 rows in set (0.59 sec)
在框口不再显示查询结果

前两种方式,导出的文件都在数据库所在服务器上

方法三:
跳出mysql命令行  这种方式可以将结果导出到本地文件
[[email protected] ~]# mysql -h 127.0.0.1 -u root -p XXXX -P 3306 -D database_name -e "select * from table"  > /tmp/test/txt

null

时间: 2024-07-30 15:04:00

mysql查询结果输出到文件的相关文章

将mysql的查询结果输出到文件

在sql命令中我们可以查询到前数行的表,同时也可以将查询结果输出到txt文档 语句:select * from tablename into outfile 'filename.txt'; 例如:select * from mytable limit 100 into outfile ‘1.txt’;将mytable表中的前一百行输出到文件1.txt

shell中调用mysql 原格式输出到文件里面

sql5="select * from 表名 ;"; 第一种方法 #ss1=$(mysql -u $DB_USER -h ${DB_IP} -p${DB_PASSWD} $DB_NAME -e "$sql5"|awk 'NR>1'); 或者 #ss1=$(mysql -u $DB_USER -h ${DB_IP} -p${DB_PASSWD} $DB_NAME -e "$sql5"); #echo "$ss1" >

[记录]MySQL 查询无法导出到文件

很多时候我们需要将数据导出到 xls文件, 然后交给数据分析师分析. 而这个查询数据+导出的动作,理应使用一个有只读权限的用户使用. 但查询某表时: select * from table ,此用户可以读取到数据,但将数据导出到文件时,发现mysql 提示用户权限不足:Access denied for user 'selecter'@'%' . 其实网上也有人遇到同样的问题:[MYSQL]关于执行SELECT * INTO OUTFILE FROM TBL时报ERROR 1045 (28000

通过g++查询到的mysql中文数据输出是乱码

这几天遇到一个问题: 通过g++查询到的mysql中文数据输出是乱码,而通过g++添加到mysql中的中文数据也是乱码,但单独通过g++输出正常,查询通过mysql添加的中文数据显示也正常. 在网查查询了很久,纠结了半天也没有找到答案.后来通过在linux吧发帖终于找到了解决方案.原来是mysql和g++默认字符集不匹配产生的问题.通过在代码中添加 int mysql_set_character_set(MYSQL *mysql, char *csname)函数终于解决了问题. 源码如下: #i

sqlplus将查询结果重定向到文件,不输出到屏幕

sqlplus将查询结果重定向到文件,不输出到屏幕: 将上面SQL保存到文件,然后在cmd窗口执行该文件即可 SQL>@D:\xxx.sql 1 --每行的字符数目 2 set linesize 8000 3 --该参数设置每页输出的行数.n=0表示不产生新页 4 set pagesize 0 5 --显示和拷贝long类型值的最大宽度的设置,最大值2G 6 set long 2000000000 7 --sqlplus检索long类型值的增量大小.由于内存的限制 可按增量检索 8 --一项目当

Oracle定时查询结果输出到指定的log文件

最近有个监控项目需要采集数据库信息,原来方案是写个sql脚本,每个脚本放一个查询语句然后通过操作系统层su到oracle用户通过sqlpus执行这个.sql,然后加到crontab定时执行.但是这个问题有个弊端,就是建立的连接太多,假如每5分钟采集一次数据那意味着5分钟通过sqlplus登陆数据库再退出.后来想着怎么在数据库层每5分钟执行下查询而不是操作系统频繁的通过sqlplus登陆,具体思路写个存储过程通过存储过程把查询结果输出到指定的日志文件.再通过job定时调度.1.建立dir授予相应权

利用pandas将mysql查询出得结果写入到excel文件

#!/usr/bin/env python3 import pandas as pd import pymysql #返回SQL结果的函数 def getrel(sql): conn =  pymysql.connect(host='localhost',user='root',password='123456',db='test') cur = conn.cursor() cur.execute('set names utf8') cur.execute('select app,name  f

oracle/mysql 将查询数据导出到文件中

一.将oracle 查询的数据导入到一个文本文件中方法一 :通过sql developer 工具导出到xls表中方法二:通过客户端sqlplus 到一个临时txt文件中再处理着重讲方法二(在使用场景下方便.快捷)SQL>spool d:sqlbak.txt;SQL>select * from table where a>x;SQL>spool off;这样刚查询的数据就好在d盘下的 sqlbak.txt 文件中,linux下同理: spool /tmp/sqlbak.txt 二.

MySQL慢查询日志相关的文件配置和使用。

MySQL慢查询日志提供了超过指定时间阈值的查询信息,为性能优化提供了主要的参考依据,是一个非常实用的功能,MySQL慢查询日志的开启和配置非常简单,可以指定记录的文件(或者表),超过的时间阈值等就可以记录到慢sql了,实话讲,相比较sqlserver的trace或者扩展事件(虽然此二者的作用并非仅仅如此),MySQL的配置总是给人一种非常清爽的感觉. 1,慢查询日志的打开 正常情况下,只需要在配置文件中增加slow_query_log = 1配置,即打开慢查询日志,未指定slow_query_