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]