#!/bin/bash
#@author:feiyuanxing 【既然笨到家,就要努力到家】
#@date:2017-12-05
#@E-Mail:feiyuanxing@gmail.com
#@TARGET:一键导出mysql数据到 csv
#@CopyRight:本脚本遵守 未来星开源协议(http://feiyuanxing.com/kaiyuanxieyi/kaiyuanxieyi.html)
#####################################################################################
#### 常量池 ####
IP=127.0.0.1
user=root
database=msyql
passwd=root
port=3306

#导出路径,默认取【费元星版权Q:9715234】当前路径下tmp
basepath=$(cd `dirname $0`; pwd)
data_path=${basepath}/tmp
mkdir -p ${data_path} && cd ${data_path}

#编码
unicode=utf8
#分隔符
separator="|"
#转【费元星版权Q:9715234】义符- 谨记注:能不该不要改
escape_character="\\"
#####################################################################################
MYSQL=`which mysql`
istar=

function baktable(){
statement="use $database;set names ${unicode};select * from $1;"
echo "下载转换$database:$1 ..."
$MYSQL -h"${IP}" -u"${user}" -p"${passwd}" -P"${port}" -e "${statement}" > 1.log

cat 1.log|sed 's/\t/|/g' > $database"_"$1.csv
if [ ""x = ${istar}x ]; then
tar -zcf "$database"_"$1.csv.tar.gz" "$database"_"$1.csv"
rm -rf $database"_"$1.csv

fi

}

function main(){
#show databases in mysql
echo "正在导出库:$database"
if [ -z $database ] ; then
echo "database in mysql:"
echo "*******************"
$MYSQL -h"${IP}" -u"${user}" -p"${passwd}" -P"${port}" -e "set names ${unicode};show databases;"
echo "*******************"
#choose a database
read -t 60 -p "您未定义需要导出的数据库,请在上表选择一个数据库:" database
fi

#show tables in the database

database_tables=`$MYSQL -h"${IP}" -u"${user}" -p"${passwd}" -P"${port}" -e "use ${database};show tables;"`
#echo "test:"$MYSQL -h"${IP}" -u"${user}" -p"${passwd}" -P"${port}" -e "use ${database};show tables;"
echo "*******************"

#choose a table
read -t 60 -p "请选择一个表,默认为导出全部表【点击回车】:" table
read -t 60 -p "是否需要压缩,默认压缩【点击回车】:" istar

if [ -z $table ] ; then
tables_tmp=`echo "${database_tables}" |tail -n +3|sed 's/^[ \t|]*//g' `

for line in `echo ${tables_tmp}`
do
#echo "正在导出表:${line} "
baktable ${line}
done
#baktable
else
baktable ${table}

fi

}

main
#baktable tb_company_base

echo "【费元星版权Q:9715234】Done successfully!Please check the file!"

【shell mysql 导出数据到csv脚本,完美解决乱码转义符等问题】-费元星的更多相关文章

  1. mysql导出数据到csv文件

    在日常工作中经常会遇见导出表中的数据到csv文件的操作,这里就简单总结一下导出的操作. 下面对csv文件的描述是摘录: 据RFC4180文档设置的,该文档全称Common Format and MIM ...

  2. MySQL – 导出数据成csv

    方案有很多种,我这里简单说一下: 1.  into outfile SELECT * FROM mytable INTO OUTFILE '/tmp/mytable.csv' FIELDS TERMI ...

  3. mysql 导出数据到csv文件的命令

    1.导出本地数据库数据到本地文件 mysql -A service_db -h your_host -utest -ptest mysql> select * from t_apps where ...

  4. MySql导出数据到csv

    通过mysql客户端shell连接到服务器,选择使用的数据库,输入sql代码: select * from test_info into outfile '/tmp/test.csv' fields ...

  5. 三十二、MySQL 导出数据

    MySQL 导出数据 MySQL中你可以使用SELECT...INTO OUTFILE语句来简单的导出数据到文本文件上. 使用 SELECT ... INTO OUTFILE 语句导出数据 以下实例中 ...

  6. php导出数据到csv

    序言 php导出数据到csv是一种很常见的功能,且csv相比于excel文件有其一定的优势,首先csv对数据的行数没有限制,但是excel对数据的行数有一定的限制,因此,csv文件对于导出大量的数据来 ...

  7. 关于2020.04.26【MySQL导出数据到文件中的方法】的补充

    之前导出的数据文件中没有表的列名,感觉不够完整,摸索一下发现带表列名导出也是可以的,只试了导出txt和csv两种文件类型的方法.       1.导出数据到txt文件中(包含数据表列名)的方法:先选择 ...

  8. MySQL导出数据到文件中的方法

    MySQL导出数据到文件中的方法 1.导出数据到txt文件中实例:把数据表studscoreinfo中所有数据导出到指定的位置方法:select * from 表名 into outfile 指定导出 ...

  9. PHP导出数据到CSV文件函数 csv_export()

    后台往往需要导出各种数据到 Excel文档中.通常我们是导出 .csv文件格式,PHP导出函数参考代码如下: /** * 导出数据到CSV文件 * * @param array $data 二维数组( ...

随机推荐

  1. 重启网络服务时 Bringing up interface eth0

    重启网络服务时报错:  Bringing up interface eth0: Error:Connection activation failed:Device not managed by Net ...

  2. Linux第七节随笔-中 /date / ln /

    4.date link 作用:显示或设定系统的日期与时间 参数: -d<字符串> 显示字符串所指的日期与时间.字符串前后必须加上双引号. -s<字符串> 根据字符串来设置日期与 ...

  3. tomcat发布项目绑定域名总结

    现在很多的公司的网站都是用tomcat作为应用服务区的,可是对于初学者,8080端口号是如何去掉的,这些网站是如何和域名绑定到一起的呢?一个tomcat是如何绑定多域名?并且这些域名是如何对应不同的项 ...

  4. Android View的事件冲突

    上一篇博客讨论了一下view中的事件分发,既然存在事件分发的过程,那么也就可能存在着冲突.常见的由以下三种形式的冲突.(外面叫做OuterViewGroup,包裹在里面的叫做InnerViewGrou ...

  5. Spring MVC报错:The request sent by the client was syntactically incorrect ()

    原因: 1.参数名称不一致 2.参数类型不一致

  6. 《vue.js2.0从入门到放弃》学习之路

    原文地址: Vue.js2.0从入门到放弃---入门实例(一):http://blog.csdn.net/u013182762/article/details/53021374 Vue.js2.0从入 ...

  7. append和extend 的区别

    l = ["zhy",666] l.extend(["edit","sdd"]) print(l) #['zhy', 666, 'edit' ...

  8. 【转载】SSD 下的 MySQL IO 优化

    一 目录 一 目录 二 背景 三 SSD 特性 四 基于 SSD 的数据库优化 五 A 项目 MySQL 主从关系图 六 程序切换之前调优 6.1 修改系统 IO 调度算法 6.2 修改 innodb ...

  9. kylin客户端(python编写)不能按照预期的segment进行rebuild

    kylin_client_tool 提供了对cube进行BUILD,REBUILD,MERGE功能,其中REBUILD却不能达到预期的效果按照指定的segment执行. 场景: 当我在kylin we ...

  10. htm的常见布局

    布局是CSS中一个重要部分,本文总结了CSS布局中的常用技巧,包括常用的水平居中.垂直居中方法,以及单列布局.多列布局的多种实现方式(包括传统的盒模型布局和比较新的flex布局实现),希望能给需要的小 ...