mongodb 数据传输到mysql数据库

本文介绍了如何通过shell脚本从MongoDB数据库向MySQL迁移数据,包括MongoDB的配置、连接、SQL查询执行以及初次插入和更新操作,最后提到设置定时任务的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

mongodb 数据传输到mysql数据库

1、首先安装MongoDB数据库,测试连接。(https://blog.youkuaiyun.com/weixin_38568503/article/details/127885059)

​ 启动方式我用的是:bin/mongod --port=20255 --dbpath=/usr/local/mongodb/data --logpath=/usr/local/mongodb/logs/mongodb.log --bind_ip=0.0.0.0 --fork

2、连接之后登录。

mongo mongodb://prod-mongodb-1.mongo:10255/mongodb -u prod-mongodb-1 -p  --ssl --sslAllowInvalidCertificates   #举例daas 数据库连接命令,要输入密码

常用命令

show dbs;  
use daasmongodb;
show collections;
db.wlw_card_open_door_log.find().pretty()   #查看表结构
db.wlw_card_open_door_log.count({open_result:1})  #使用count函数查询字段

3、使用shell脚本执行传输操作,

#!/bin/bash

#MongoDB连接信息
mongo_host="******"
mongo_port="***"
mongo_user="mongodb-1"
mongo_pwd="****************"
mongo_db="daasmongodb"

#MySQL连接信息
mysql_host="dev-mysql"
mysql_user="dev-mysql"
mysql_pwd="****************"
mysql_db="test"

#执行MongoDB查询
face_count=$(mongo ${mongo_host}:${mongo_port}/${mongo_db} -u ${mongo_user} -p ${mongo_pwd} --ssl --sslAllowInvalidCertificates --quiet --eval "db.wlw_face_open_door_log.count({open_result: 1})")
qrcode_count=$(mongo ${mongo_host}:${mongo_port}/${mongo_db} -u ${mongo_user} -p ${mongo_pwd} --ssl --sslAllowInvalidCertificates --quiet --eval "db.wlw_qrcode_open_door_log.count({open_result: 1})")
remote_count=$(mongo ${mongo_host}:${mongo_port}/${mongo_db} -u ${mongo_user} -p ${mongo_pwd} --ssl --sslAllowInvalidCertificates --quiet --eval "db.wlw_remote_open_door_log.count({open_result:1})")
call_count=$(mongo ${mongo_host}:${mongo_port}/${mongo_db} -u ${mongo_user} -p ${mongo_pwd} --ssl --sslAllowInvalidCertificates --quiet --eval "db.wlw_call_open_door_log.count({call_object:1})")

#将查询结果写入MySQL数据库
mysql -u ${mysql_user} -p${mysql_pwd} -h ${mysql_host} ${mysql_db} <<EOF
UPDATE result_table SET value = ${face_count} WHERE name = 'face_count';
UPDATE result_table SET value = ${qrcode_count} WHERE name = 'qrcode_count';
UPDATE result_table SET value = ${remote_count} WHERE name = 'remote_count';
UPDATE result_table SET value = ${call_count} WHERE name = 'call_count';
EOF

4、记得第一次创建的时候要先实行insert 语句,再执行update语句

INSERT INTO result_table (name, value) VALUES ('face_count',${face_count});
INSERT INTO result_table (name, value) VALUES ('qrcode_count',${qrcode_count});
INSERT INTO result_table (name, value) VALUES ('remote_count',${remote_count});
INSERT INTO result_table (name, value) VALUES ('call_count',${call_count});

5、设置定时任务,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值