mysql load data导入脚本
2016-08-09 16:56
471 查看
# !/bin/bash ############中文说明###################### #本程序的一些提示需要中文支持,如系统没有安装中文包,请先安装:yum -y groupinstall chinese-support ############使用说明###################### #1.运行本程序之前,有几个注意事项,数据库的表需要实现创建好,字段要和源文件的字段一一对应 #2.本程序需要一些参数,示例:./script.sh /tmp/test.txt table_name , #3.上述示例中:script.sh是程序文件名,/tmp/test.txt是源文件,table_name是数据库的表名,","是源文件中的字段分隔符 #4.此程序算是version_1.0版本,功能较简单,如果有下版本,将加入源文件的切割功能,正在测试文件切割的性能 #5.此外,还需要一些参数需要在程序中指定,比如mysql的账户和密码,还有具体数据库实例 ########################################## MysqlUser=root #指定mysql的账户 MysqlPass=123456 #指定mysql的密码 sourcefile=$1 targetfile=$2 db=mytest #指定数据库实例 if [ -z "$3" ];then delimit="," else delimit=$3 fi MysqlCmd="mysql -u$MysqlUser -p$MysqlPass $db" #LoaddataCmd="LOAD DATA LOW_PRIORITY LOCAL INFILE '$sourcefile' IGNORE INTO TABLE $targetfile CHARACTER SET utf8 FIELDS TERMINATED BY '$delimit';" [ -z "$sourcefile" ]&&{ echo '没有指定源文件...' exit 0 } [ -z "$targetfile" ]&&{ echo '没有指定数据库的表...' exit 0 } if [ ! -f "$sourcefile" ]; then echo "源文件不存在,请检查!程序结束..." sleep 1 exit 0 fi echo -n "运行此程序前,请确认源文件为[${sourcefile}],目标数据库表为[${targetfile}],分隔符为[${delimit}](未指定则默认为\",\"): " read -n 1 -p "(y/n)? " anw if [ "$anw" = y ];then echo "" echo "程序继续,正在处理,请等待..." elif [ "$anw" = n ];then echo "" echo "程序已结束..." exit 0 else echo "" echo "选择错误,程序将结束,请重新运行程序,并输入(y/n)" exit 0 fi echo "正在统计文件大小!请等待..." sleep 1; echo "..." { file_size=`du -sh $sourcefile |awk '{print$1}'` }&&{ echo "[${sourcefile}]文件大小为:$file_size" } sleep 1; echo "..." echo "正在导入..." seconds_1=$(date +%s) $MysqlCmd -e "LOAD DATA LOW_PRIORITY LOCAL INFILE '$sourcefile' IGNORE INTO TABLE $targetfile CHARACTER SET utf8 FIELDS TERMINATED BY '$delimit';" seconds_2=$(date +%s) if [ $? -eq 0 ]; then echo "导入完成!" echo "耗时: `expr $seconds_2 - $seconds_1`秒" exit 0 else echo "导入未完成,请检查错误!" exit 0 fi
相关文章推荐
- 如何把.csv文件导入到mysql中以及如何使用mysql 脚本中的load data快速导入
- mysql 导入csv数据时,Load Data Local Infile的权限
- MySQL中使用load data命令实现数据导入的方法
- mysql导入数据load data infile用法
- mysql不能导入数据|mysql load data语法|mysql ERROR 1064
- 解决ubuntu server mysql load data infile 导入本地文件ERROR 1148 (42000)错误。
- MYSQL 数据导入导出LOAD DATA AND OUTFILE
- 快速的mysql导入导出数据(load data和outfile)
- mysql脚本--load data infile
- MySQL用Load Data local infile 导入部分数据后中文乱码
- mysql load data导入数据
- Ubuntu+Mysql之从格式化文件导入数据库——Load Data 命令使用及local-infile=1用法
- mysql load data 方式导入数据
- MySQL远程导入数据LOAD DATA LOCAL INFILE ...
- mysql中使用load data命令批量数据导入
- 【转】【MySQL】用 Load data local infile 语句快速导入文件
- Mysql导入数据load data infile
- MySQL用Load Data local infile 导入部分数据后中文乱码(character set utf8)
- load data infile上亿条的海量数据导入mysql的那些事
- 初试mysql命令load data 导入数据进表