Shell 操作 MySQL 数据库导出表数据到文件

背景

Shell 脚本实现批量导出 MySQL 数据库中按周期生成的表的某些字段到文件。

MySQL 查看导出文件前缀

在这里插入图片描述

脚本要点

  1. shell 循环语句
  2. shell 操作 MySQL 的方式:select xxx from xxx into outfile shell 操作 MySQL 的方式:select xxx from xxx into outfile 'filePath/fileName’命令完成导出部分数据的功能
  3. 导出文件路径必须是 secure_file_priv 变量定义的目录或子目录。

编写脚本

HOSTNAME="127.0.0.1"
PORT="3306"
USERNAME="root"
PASSWORD="MyPass!"
 
prefix='My_Log_201902'

for ((date = 1; date <= 28; date++))   
do  
 if [ $date -le 9 ] ;then 
    prefixWithDate=$prefix'0'$date
 else
    prefixWithDate=$prefix$date
 fi
 
  
 for ((hour = 0; hour <= 23; hour++)) 
 do 
    if [ $hour -le 9 ] ;then 
       lastTableName=$prefixWithDate'0'$hour
    else
       lastTableName=$prefixWithDate$hour
    fi
    echo $lastTableName
    
    create_db_sql="select time,total_package_num,total_byte_num from mydb.$lastTableName into outfile '/var/lib/mysql-files/$lastTableName.csv';"
    mysql -h${HOSTNAME} -P${PORT} -u${USERNAME} -p${PASSWORD} -e "${create_db_sql}"
    echo $lastTableName'ok'
 done
done  

#打包
tar -czvf MyLog_2019All.tar.gz /var/lib/mysql-files

启示录

能够迅速在不同编程语言之间切换,也是本人从工作中锻炼出来技能。
临时发挥、罗列各种语言的注释字符如下:

  1. Java /** **/ //
  2. C /** **/ //
  3. C++ /** **/ //
  4. JavaScript /** **/ //
  5. Shell #
  6. Python #
  7. MySQL --(两个短横线)

除了C、C++,其他几种语言竟然都是自己经常使用的啊。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值