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
或是其他特殊字符串,可能会导入不成功