将mysql数据导为csv再导入到mongodb中

shell脚本 mysql2mongodb.sh



#[root@localhost tmp]# vim mysql2mongo.sh 

mysql -h127.0.0.1 -uroot -p123456 -P3306 -N -e "  
SELECT CONCAT(' SELECT ',GROUP_CONCAT( CONCAT('',c.COLUMN_NAME ,'') ORDER BY c.ORDINAL_POSITION), 
 ' FROM  ', c.TABLE_SCHEMA,'.', c.TABLE_NAME, ' INTO OUTFILE ''/tmp/',c.TABLE_SCHEMA,'.', c.TABLE_NAME ,'.csv'' FIELDS TERMINATED BY '',''  OPTIONALLY ENCLOSED BY ''\"''  ;') dbTable
FROM information_schema.COLUMNS c
WHERE c.TABLE_SCHEMA = 'dsp_ad_center'
GROUP BY c.TABLE_SCHEMA , c.TABLE_NAME
" >/tmp/mysql2csv_todo.sql

cat /tmp/mysql2csv_todo.sql | while read -e LINE
do
#echo $LINE
mysql -h127.0.0.1 -uroot -p123456 -P3306 -N -e "$LINE"
done

rm -rf /tmp/mysql2csv_todo.sql

# ################################################################################################################################################################################

mysql -h127.0.0.1 -uroot -p123456 -P3306 -N -e "
SELECT CONCAT('./mongoimport -h 127.0.0.1:27017 -d \"' ,c.TABLE_SCHEMA,'\" -c \"',c.TABLE_NAME ,'\"  -f \"',GROUP_CONCAT( CONCAT('',c.COLUMN_NAME ,'') ORDER BY c.ORDINAL_POSITION),  '\" --type=csv --file=/tmp/', c.TABLE_SCHEMA,'.', c.TABLE_NAME,
 '.csv') dbTable
FROM information_schema.COLUMNS c
WHERE c.TABLE_SCHEMA = 'dsp_ad_center'
GROUP BY c.TABLE_SCHEMA , c.TABLE_NAME
" > /tmp/mongo-todo.sql
cd /usr/local/mongodb/bin

cat /tmp/mongo-todo.sql | while read  LINE
do
echo $LINE
$LINE
done

rm -rf /tmp/mongo-todo.sql
rm -rf /tmp/dsp_ad_center.*csv




#执行时不返回消息
sh mysql2mongo.sh >/dev/null 2>&1

有问题,如果本身csv中就包含jason  

或是其他特殊字符串,可能会导入不成功




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值