admin 发表于 2016-6-13 17:37:27

MySql数据表导入导出

conf.sh文件
mysql_source="mysql -h192.168.0.1 -P3306 -urw_user -pZ9a9dy3BcIMnrbf2Xfdp"
mysql_dist="mysql -h127.0.0.1 -P9988 -uroot -proot"
data_dir="/home/work/scripts/data"
today=`date "+%Y%m%d"`
dist_dbname="db_"$today

if [ ! -d $data_dir ];then
    mkdir -p $data_dir
fi

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

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

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



dump.sh 文件
#!/bin/sh

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

source_db=ddd_car
source_table=t_batch_op_log
dist_table=$source_table

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

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

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

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

# 导入数据
$mysql_dist -N -e "use $dist_dbname; load data infile '$file' ignore into table $dist_table"







页: [1]
查看完整版本: MySql数据表导入导出