MySQL导出数据到csv文件

一、MySQL导出数据到本地文件夹

语法如下:            SELECT * FROM table_name
                              INTO OUTFILE 'D:/xxx/xxx/xxx.csv'       (这里路径要加全路径)
                              FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
                              LINES TERMINATED BY '\n'

这个时候可能会出现如下错误:

[Err] 1290 - The MySQL server is running with the --secure-file-priv option so it cannot execute this statement

原因是MySQL对导出导入文件路径有限制,解决方法:

1.进入mysql查看secure_file_prive的值

             mysql>SHOW VARIABLES LIKE "secure_file_priv";

             secure_file_prive=null   -- 限制mysqld 不允许导入导出                 我新装的mysql,我的情况就是secure_file_prive=null

             secure_file_priv=/tmp/   -- 限制mysqld的导入导出只能发生在/tmp/目录下

             secure_file_priv=' '         -- 不对mysqld 的导入 导出做限制

2.修改secure_file_prive的值

Windows下打开my.ini(如果是Linux的话就是my.cnf,我这里主要介绍在windows操作系统)

在mysqld下

找到secure-file-priv='xxxx',修改路径

如果没有就加一行secure-file-priv=''(注意是横线,不是下划线),添加路径或者不添加,不添加就是可以在任何目录下操作。

然后重启mysql服务即可。

二、修改完成后就可以导出文件,但是有可能还会遇到一些问题,如下:

1.[Err] 1 - Can't create/write to file 'D:\*******\mysqlFile\成绩表.csv' (Errcode: 22)

这个问题是因为路径中包含了汉字(这个感觉有点坑),比如:

我在csv文件名中有汉字,就报错了,这个问题我只能改文件名了,可能是MySQL的一个BUG。

2.数据导出到csv文件之后,打开查看,发现乱码了(windows下支持用excel文件格式打开)。

mysql表是utf8编码,excel默认编码格式是gbk,我们可以在导出的时候加上编码,问题就可以解决了,如下:

3.费了半天劲好不容易把数据导出到csv文件了,结果发现csv文件中没有字段名称,只有数据。

这样的话很多情况下无法满足客户的需求,用户关心数据,而没有字段的话用户无法理解数据的含义。

所以我们还要加上字段名称,俗称表头:

终于好了,查看结果:

  • 3
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值