MySQL 到 MongoDB 实时数据同步实操分享,Python推送技术解析
from pymongo import MongoClient
import pymysql
import time
# 配置MySQL数据库连接信息
mysql_config = {
"host": "localhost",
"user": "root",
"password": "your_mysql_password",
"db": "your_mysql_db",
"charset": "utf8mb4",
"cursorclass": pymysql.cursors.DictCursor
}
# 配置MongoDB连接信息
mongo_config = {
"host": "localhost",
"port": 27017,
"db": "your_mongo_db",
"collection": "your_mongo_collection"
}
# 连接MySQL和MongoDB
mysql_conn = pymysql.connect(**mysql_config)
mongo_client = MongoClient(mongo_config["host"], mongo_config["port"])
db = mongo_client[mongo_config["db"]]
collection = db[mongo_config["collection"]]
# 定义同步数据的函数
def sync_data():
with mysql_conn.cursor() as cursor:
# 查询MySQL数据
sql = "SELECT * FROM your_mysql_table"
cursor.execute(sql)
rows = cursor.fetchall()
# 插入数据到MongoDB
for row in rows:
collection.insert_one(row)
# 主程序
if __name__ == "__main__":
while True:
try:
sync_data() # 执行同步数据的操作
time.sleep(10) # 间隔10秒执行下次同步
except Exception as e:
print(f"Error: {e}") # 打印错误信息
time.sleep(60) # 出现错误则等待60秒后重试
这段代码展示了如何使用Python实现MySQL到MongoDB的实时数据同步。首先配置了MySQL和MongoDB的连接信息,然后定义了一个同步数据的函数sync_data
,该函数连接MySQL数据库,查询数据,并插入到MongoDB中。最后,在主程序中循环执行同步操作,并在出现异常时进行错误处理。
评论已关闭