客户端

MySql数据表导入导出

所在版块: 后端技术 2016-06-13 17:37 [复制链接] 查看: 2701|回复: 0
conf.sh文件
  1. mysql_source="mysql -h192.168.0.1 -P3306 -urw_user -pZ9a9dy3BcIMnrbf2Xfdp"
  2. mysql_dist="mysql -h127.0.0.1 -P9988 -uroot -proot"
  3. data_dir="/home/work/scripts/data"
  4. today=`date "+%Y%m%d"`
  5. dist_dbname="db_"$today

  6. if [ ! -d $data_dir ];then
  7.     mkdir -p $data_dir
  8. fi

  9. # 生成导出数据文件名(全路径)
  10. function gen_filename()
  11. {
  12.     echo $data_dir/$1"."$today
  13. }

  14. # 创建目标数据库
  15. function create_dist_database()
  16. {
  17.     $mysql_dist -N -e "create database if not exists $dist_dbname"
  18. }

  19. # 从源数据库的数据表导出建表语句
  20. # 使用示例: sql=`get_create_table_sql ddd_car t_car`
  21. function get_create_table_sql()
  22. {
  23.     res=`$mysql_source -N -e "use $1;show create table $2 \G"`
  24.     echo "CREATE TABLE IF NOT EXISTS "${res#*CREATE TABLE}
  25. }
复制代码



dump.sh 文件
  1. #!/bin/sh

  2. # 引入conf.sh文件
  3. source ./conf.sh

  4. source_db=ddd_car
  5. source_table=t_batch_op_log
  6. dist_table=$source_table

  7. # 生成导出文件名,如果导出文件存在,表示已导过,退出
  8. file=`gen_filename $source_table`
  9. if [ -f $file ]; then
  10.     exit 0
  11. fi

  12. # 从源数据表中导出数据到文件
  13. $mysql_source -N -e "use lang_car;SELECT * FROM t_car" > $file

  14. # 创建目标数据库(如果不存在)
  15. create_database

  16. # 创建目标数据表(如果不存在)
  17. create_table_sql=`get_create_table_sql $source_db $source_table`
  18. $mysql_dist -N -e "use $dist_dbname; $create_table_sql"

  19. # 导入数据
  20. $mysql_dist -N -e "use $dist_dbname; load data infile '$file' ignore into table $dist_table"
复制代码







分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码关注微信公众号

QQ|Archiver|手机版|小黑屋|mwt-design ( 沪ICP备12041170号-1

GMT+8, 2024-11-1 11:39 , Processed in 0.081034 second(s), 32 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回列表