Shell脚本:Mysql自动导入文本数据

一、目的

  实现文本数据自动导入到Mysql数据库,实现快捷方便导入;

二、流程

(一)编写shell脚本

​
dbhost='192.168.200.103'
dbuser='root'
dbpasswd='root'
dbport='3306'
db='test'
#$1--目标表 $2--文本数据

#如果目标表存在删除目标表
sql1="drop table if exists $1"
mysql -h$dbhost -P$dbport -u$dbuser -p$dbpasswd $db -e "$sql1"
echo "删除成功"

#因为文本数据是以逗号作为分隔符,所以在最后拼接列名时会多一个逗号,采用获取最后一个列名来避免最后一列存在逗号;
col=`head -n +1 $2 | sed 's/,/ /g'`
# echo $col
lastname=''
for j in $col
do
lastname=$j
done

#采用拼接sql语句的方式创建表
sql2="create table if not exists $1("
for col_name in $col
do
if [ $col_name == $lastname ]
then
sql2="$sql2 $col_name varchar(200)"
else
sql2="$sql2 $col_name varchar(200),"
fi
done
sql2="$sql2)"
mysql -h$dbhost -P$dbport -u$dbuser -p$dbpasswd $db -e "$sql2"
echo "创建成功"

#导入数据到mysql
sql3="LOAD DATA INFILE '$2' INTO TABLE $1
CHARACTER SET utf8
FIELDS TERMINATED BY ','
LINES TERMINATED BY '\n'
IGNORE 1 LINES"
mysql -h$dbhost -P$dbport -u$dbuser -p$dbpasswd $db -e "$sql3"
echo "导入成功"

#查询表数据
sql4="select * from $1"
mysql -h$dbhost -P$dbport -u$dbuser -p$dbpasswd $db -e "$sql4"

​

(二)复制文本数据到MySQL中的data

    os.system("cp /root/moviedonghua.csv /usr/local/mysql/data/moviedonghua.csv")
    os.system("/root/shell/mysqlcsv.sh /usr/local/mysql/data/moviedonghua.csv Movie")
    #只有将文本数据先复制到MySQL中的data文件夹,才能实现导入到数据库;

  • 8
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值