【shell mysql 导出数据到csv脚本,完美解决乱码转义符等问题】-费元星
#!/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脚本,完美解决乱码转义符等问题】-费元星的更多相关文章
- mysql导出数据到csv文件
在日常工作中经常会遇见导出表中的数据到csv文件的操作,这里就简单总结一下导出的操作. 下面对csv文件的描述是摘录: 据RFC4180文档设置的,该文档全称Common Format and MIM ...
- MySQL – 导出数据成csv
方案有很多种,我这里简单说一下: 1. into outfile SELECT * FROM mytable INTO OUTFILE '/tmp/mytable.csv' FIELDS TERMI ...
- mysql 导出数据到csv文件的命令
1.导出本地数据库数据到本地文件 mysql -A service_db -h your_host -utest -ptest mysql> select * from t_apps where ...
- MySql导出数据到csv
通过mysql客户端shell连接到服务器,选择使用的数据库,输入sql代码: select * from test_info into outfile '/tmp/test.csv' fields ...
- 三十二、MySQL 导出数据
MySQL 导出数据 MySQL中你可以使用SELECT...INTO OUTFILE语句来简单的导出数据到文本文件上. 使用 SELECT ... INTO OUTFILE 语句导出数据 以下实例中 ...
- php导出数据到csv
序言 php导出数据到csv是一种很常见的功能,且csv相比于excel文件有其一定的优势,首先csv对数据的行数没有限制,但是excel对数据的行数有一定的限制,因此,csv文件对于导出大量的数据来 ...
- 关于2020.04.26【MySQL导出数据到文件中的方法】的补充
之前导出的数据文件中没有表的列名,感觉不够完整,摸索一下发现带表列名导出也是可以的,只试了导出txt和csv两种文件类型的方法. 1.导出数据到txt文件中(包含数据表列名)的方法:先选择 ...
- MySQL导出数据到文件中的方法
MySQL导出数据到文件中的方法 1.导出数据到txt文件中实例:把数据表studscoreinfo中所有数据导出到指定的位置方法:select * from 表名 into outfile 指定导出 ...
- PHP导出数据到CSV文件函数 csv_export()
后台往往需要导出各种数据到 Excel文档中.通常我们是导出 .csv文件格式,PHP导出函数参考代码如下: /** * 导出数据到CSV文件 * * @param array $data 二维数组( ...
随机推荐
- python爬虫——建立IP池,将可用IP存放到redis
直接上代码,每行代码后面都有注释 import urllib.request import urllib import re import time import random import sock ...
- RepeatMasker使用中的问题
RepeatMasker在运行时会先产生如下一个中间文件夹如RM_23346.WedAug301137422017,最后生成结果文件,例如.out,.masked,.tbl等 软件特性:软件运行很慢, ...
- MHA高可用架构与Atlas读写分离
1.1 MHA简介 1.1.1 MHA软件介绍 MHA(Master High Availability)目前在MySQL高可用方面是一个相对成熟的解决方案,它由日本DeNA公司youshimaton ...
- Oracle绑定变量优缺点
参考:http://f.dataguru.cn/thread-208881-1-1.html 参考:http://blog.sina.com.cn/s/blog_4d9ece9a0100caw8.ht ...
- dubbo源码—dubbo简介
dubbo是一个RPC框架,应用方像使用本地service一样使用dubbo service.dubbo体系架构 上图中的角色: 最重要的是consumer.registry和provider con ...
- IDA Pro反编译代码类型转换参考
/* This file contains definitions used by the Hex-Rays decompiler output. It has type definitions an ...
- windows64 系统下安装Nodejs
1.nodejs安装: 版本号: node-v8.9.3-x64 检测安装成功:(这个版本已经集成了npm) 2.npm作为一个NodeJS的模块管理,先配置npm的全局模块的存放路径以及cache的 ...
- windows 下运行angualr/material2 项目
第一步:到github上clone angular/material2 项目 第二步:npm install 第三步: 打开git bash (cmd 或 powershell 是无法成功运行该项目 ...
- JS获取前天、昨天、今天、明天、后天的时间
GetDateStr = function(AddDayCount) { var dd = new Date(); dd.setDate(dd.getDate()+AddDayCount);//获取A ...
- 如何把kotlin+spring boot开发的项目部署在tomcat上
本文只讲部署过程,你首先要保证你的程序能在IDE里跑起来: 先看看你的application.properties中设置的端口号与你服务器上tomcat的端口号是否一致 server.port=80 ...