mysql查询结果导出excel 命令(mysql导出查询的数据)

在日常的开发中,我们经常需要从数据库中导出数据。对于那种有图形化操作的,我们导出数据是非常方便的。比如SQLyog、Navicat这些工具可以直接将查询的结果导出。在这里我就不作介绍了,下面我们主要来说说在命令行模式下怎么将查询结果导出到文件。

本文中的操作环境:mysql5.6+CentOS6.6

下面给介绍一种简单的方式:

在命令行模式下执行:sql语句+into outfile +'/文件路径/文件名' + 编码方式(可选)

例如:

select * from test into outfile '/home/test.csv'; 下面我们看下执行结果:

mysql查询结果导出excel 命令(mysql导出查询的数据)

导出查询结果图

你会发现 ERROR 1290 (HY000): The MySQL server is running with the --secure-file-priv option so it cannot execute this statement 这种错误了。出现这种情况,应该是mysql设置的权限,我们可以通过执行 show variables like '%secure%'; 查看当前的--secure-file-priv 值是什么。

mysql查询结果导出excel 命令(mysql导出查询的数据)

show variables like '%secure%'; 执行的结果

这个时候,我们可以通过mysql安装路径下的my.ini配置文件,将secure_file_priv 的值改为/home/,但这种方式需求重启mysql服务,生产环境不允许我们这样操作。于是我们就将导出的文件目录指定到/var/lib/mysql-files/下,再来看执行效果:

mysql查询结果导出excel 命令(mysql导出查询的数据)

修改导出文件的目录后的执行效果图

下面我去目标路径下查看是否真的已经生成了文件:

mysql查询结果导出excel 命令(mysql导出查询的数据)

导出的结果

可以看出已经生成了文件。

至此,我们的导出工作结束。

ps:如果目标路径下已经存在相同的文件名,则导出失败。导出的文件格式可以是.csv/.xls/.txt的。导出的文件内容如果乱码可以在语句后面加上CHARACTER SET utf8(gbk)等。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发表评论

登录后才能评论