需求:

  需要导出hr_users 表中的部分字段的数据,以前是用PHP写脚本,然后导出CSV文件。

  在MySQL中,它自己就能导出CSV文件 ,只不过是有如下几个问题需要大家解决。

  1. 生成文件不成功,没有读写权限

  2.导出数据为中文乱码

  3.数据没有格式化,阅读不方便

解决方案:

如果使用 select  ... into  outfile ...方式导出数据,需要分为两种情况 :
1. windows系统下:可以随意指定对应的目录 。
2. linux 系统下 :
(1)不指定目录 ,默认在当前导出数据库数据目录下 ,例如  /var/lib/mysql/db_name 
(2) 指定目录时,默认只能指定 /tmp目录 。否则回报 “ ERROR 1 (HY000) at line 1: Can't create/write to file '/xxxx/xxxx/xxx.csv' (Errcode: 13)” 错误 !导致原因是因为权限问题,修改起来比较麻烦 !可以放到/tmp/目录下,然后cp到其它你想存放的目录。【

推荐使用这种方法】

对于中文乱码的问题,有两种解决方案

1.user表是utf8编码,excel默认编码格式是GBK,excel直接打开时候是一堆乱码。后来想了一个办法中转,先保存成为txt格式,excel打开txt时候会提示选择用哪种编码方式打开,选择utf8解决。

2.导出时候加上CHARACTER SET gbk 即可【推荐使用】

关于数据格式化的问题,需要给导出的字段传递一些参数

 fields terminated by ',' optionally enclosed by '"' escaped by '"'
lines terminated by '\r\n'

这个参数是根据RFC4180文档设置的,该文档全称Common Format and MIME Type for Comma-Separated Values (CSV) Files,其中详细描述了CSV格式,其要点包括:

(1)字段之间以逗号分隔,数据行之间以\r\n分隔;

(2)字符串以半角双引号包围,字符串本身的双引号用两个双引号表示。

terminated by分隔符:意思是以什么字符作为分隔符
enclosed by字段括起字符
escaped by转义字符
terminated by描述字段的分隔符,默认情况下是tab字符(\t) 
enclosed by描述的是字段的括起字符。
escaped by描述的转义字符。默认的是反斜杠(backslash:\ )  
 

一个完整的实例如下所示:

 select id , tel,email from hr_users limit  into outfile '/tmp/junjun.csv' character set gbk 
fields terminated by ',' optionally enclosed by '"'
lines terminated by '\n';

MySQL直接导出CSV文件,并解决中文乱码的问题的更多相关文章

  1. php 生成读取csv文件并解决中文乱码

    csv其实是文本文件,但是里面的内容是利用逗号分隔的. 1. 生成csv文件 function new_csv($arr) { $string=""; foreach ($arr ...

  2. MySql数据库导出csv文件命令

    MySql数据库导出csv文件命令: MySql数据库导出csv文件命令: mysql> select first_name,last_name,email from account into ...

  3. cocos2d-x:读取指定文件夹下的文件名称+解决中文乱码(win32下有效)

    援引:http://blog.csdn.net/zhanghefu/article/details/21284323 http://blog.csdn.net/cxf7394373/article/d ...

  4. MySQL 导入导出 CSV 文件

    导入 导出 清空表中的所有数据 注意事项 常见问题 ERROR 1290 (HY000): The MySQL server is running with the --secure-file-pri ...

  5. 导出csv文件时韩文乱码解决方法

    从asp.net导出csv这样配置可以防止韩文等乱码,在头部加上0xEF, 0xBB, 0xBF: string fileName = "attachment;filename=" ...

  6. Eclipse导出JavaDoc(并解决中文乱码问题)

    一. 使用Eclipse生成注释文档 使用eclipse生成文档(javadoc)主要有三种方法: 1,在项目列表中按右键,选择Export(导出),然后在Export(导出)对话框中选择java下的 ...

  7. Cocos2d-x解析XML文件,解决中文乱码

    身处大天朝,必须学会的一项技能就是解决中文显示问题.这个字符问题还搞了我一天,以下是个人解决乱码问题的实践结果,希望可以给其他人一些帮助 读取xml文件代码: CCDictionary* messag ...

  8. python之MySQL MySQLdb 推荐使用姿势,解决中文乱码

    0.目录 2.setup(1) 安装步骤,可以顺带安装mysql administrator和mysql query browser(2) 安装完毕,修改 my.ini(3) 重启 mysql 服务: ...

  9. Java处理ZIP文件的解决方案——Zip4J(不解压直接通过InputStream形式读取其中的文件,解决中文乱码)

    一.JDK内置操作Zip文件其实,在JDK中已经存在操作ZIP的工具类:ZipInputStream. 基本使用: public static Map<String, String> re ...

随机推荐

  1. 【总结整理】自带天气app,为什么还要下载

    很简单那就说明用户对天气这个功能的需求并没有表面那么简单呗,还有更深层次的需求~ 先声明我自己是没有这方面需求的,我就纯属YY一下 既然数据都一样的话,那是什么让用户觉得天气APP更专业呢? 1.历史 ...

  2. javascript的Undefined,null区别

    //在javascript中null表示“什么都没有” ,是一个特殊的类型,表示一个空对象引用: var person = null; //值为null(空),但类型为对象 console.log(p ...

  3. Openssl rsautl命令

    一.简介 rsautl指令能够使用RSA算法签名,验证身份,加密/解密数据 二.语法 openssl rsautl [-in file] [-out file] [-inkey file] [-pas ...

  4. 使用python进行汉语分词-乾颐堂

    目前我常常使用的分词有结巴分词.NLPIR分词等等 最近是在使用结巴分词,稍微做一下推荐,还是蛮好用的. 一.结巴分词简介 利用结巴分词进行中文分词,基本实现原理有三: 基于Trie树结构实现高效的词 ...

  5. .net正则查询

    using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Web.UI ...

  6. Java代码加密与反编译(二):用加密算法DES修改classLoader实现对.class文件加密

    Java代码加密与反编译(二):用加密算法DES修改classLoader实现对.class文件加密 二.利用加密算法DES实现java代码加密 传统的C/C++自动带有保护机制,但java不同,只要 ...

  7. 黑盒测试实践-任务进度-Day05

    任务进度11-30 使用工具 selenium 小组成员 华同学.郭同学.穆同学.沈同学.覃同学.刘同学 任务进度 经过了前两天的学习任务的安排,以下是大家的任务进度: 华同学(任务1) 1.由于昨天 ...

  8. win7下cygwin命令行颜色和中文乱码解决

    在cygwin虚拟机中可以使用ls命令等Linux下的一些命令,如果在win下将环境变量path中添加x:\cygwin\bin(x:指的是cygwin所在的盘符),可以在cmd环境中使用这些命令,而 ...

  9. [欣赏代码片段] (JavaScript) 你使用过getComputedStyle没有

    (function() { // IE8 ployfill for GetComputed Style (for Responsive Script below) if (!window.getCom ...

  10. CoderForces 687C The Values You Can Make (01背包,DP)

    题意:给定 n 个硬币和一个值 k,问你在用一些硬币组成面值为 k的这些硬币还能组成多少种其他面值. 析:如果这样说,由这些硬币能组成多少种不同的面值,那么是不是就很熟悉了,这不就是01背包么,这个题 ...