MySQL迁移SQLite 借助PYTHON脚本

ops/2024/12/20 7:23:30/

使用 Python 脚本将 MySQL 数据库迁移到 SQLite 是一种灵活且强大的方法。

下面是一个基本的脚本示例,使用 pandassqlite3 库来实现这一过程。

这个脚本假设你已经安装了 pandasmysql-connector-python 库。

步骤

安装必要的库:

如果尚未安装,请使用 pip 安装:

pip install pandas mysql-connector-python

Python 脚本:

以下是一个示例脚本,用于从 MySQL 读取数据并将其写入 SQLite:

python">import mysql.connector
import sqlite3
import pandas as pd# 配置 MySQL 连接
mysql_config = {'user': 'your_mysql_username','password': 'your_mysql_password','host': 'localhost','database': 'your_mysql_database'
}# 连接到 MySQL
mysql_conn = mysql.connector.connect(**mysql_config)# 连接到 SQLite
sqlite_conn = sqlite3.connect('your_sqlite_database.db')# 获取 MySQL 数据库中的表列表
mysql_cursor = mysql_conn.cursor()
mysql_cursor.execute("SHOW TABLES")
tables = mysql_cursor.fetchall()for (table_name,) in tables:# 从 MySQL 中读取表数据query = f"SELECT * FROM {table_name}"df = pd.read_sql(query, mysql_conn)# 将数据写入 SQLitedf.to_sql(table_name, sqlite_conn, if_exists='replace', index=False)print(f"Table {table_name} migrated successfully.")# 关闭连接
mysql_cursor.close()
mysql_conn.close()
sqlite_conn.close()

说明

MySQL 连接: 使用 mysql.connector 连接到 MySQL 数据库。需要提供用户名、密码、主机名和数据库名。

SQLite 连接: 使用 sqlite3 库连接到 SQLite 数据库。指定要存储的 SQLite 数据库文件。

读取和写入数据:

  • 使用 pandas.read_sql() 从 MySQL 数据库中读取数据到 DataFrame。
  • 使用 DataFrame.to_sql() 将数据写入 SQLite 数据库。
    表迁移: 脚本会遍历 MySQL 数据库中的所有表,将每个表的数据迁移到 SQLite。

注意事项

数据类型兼容性: 确保数据类型在 MySQL 和 SQLite 之间的兼容性,尤其是在处理日期、时间和二进制数据时。

索引和约束: 脚本仅迁移数据,不会自动迁移索引和约束。如果需要迁移这些结构,可能需要手动处理。

性能: 对于大型数据库,可以考虑分批次导入数据以避免内存问题。

通过这个脚本,你可以快速将 MySQL 数据迁移到 SQLite,同时还可以根据需要进行定制和扩展。


http://www.ppmy.cn/ops/143412.html

相关文章

【自动驾驶】单目摄像头实现自动驾驶3D目标检测

🍑个人主页:Jupiter. 🚀 所属专栏:传知代码 欢迎大家点赞收藏评论😊 目录 概述算法介绍演示效果图像推理视频推理 核心代码算法处理过程使用方式环境搭建下载权重文件pytorch 推理(自动选择CPU或GPU&#x…

HTML基本标签详解

HTML基本标签详解 HTML&#xff08;超文本标记语言&#xff09;是构建网页的基础&#xff0c;以下是一些常用的 HTML 基本标签及其详细说明&#xff1a; <html> 定义&#xff1a;整个 HTML 文档的根元素。示例&#xff1a;<html lang"zh"><head> …

白话java设计模式

创建模式 单例模式&#xff08;Singleton Pattern&#xff09;&#xff1a; 就是一次创建多次使用&#xff0c;它的对象不会重复创建&#xff0c;可以全局来共享状态。 工厂模式&#xff08;Factory Method Pattern&#xff09;&#xff1a; 可以通过接口来进行实例化创建&a…

排序算法进一步总结

归并排序 (Merge Sort) 归并排序是建立在归并操作上的一种有效的排序算法。该算法是采用分治法 (Divide and Conquer) 的一个非常典型的应用。归并排序是一种稳定的排序方法。将已有序的子序列合并&#xff0c;得到完全有序的序列&#xff1b;即先使每个子序列有序&#xff0c;…

美的集团后端实习面试

前言 碎碎念没必要看 不过&#xff0c;hr还有面试官都很好&#xff0c;面试官也不严厉&#xff0c;虽然没开摄像头&#xff0c;但是面起来很舒服&#xff0c;然后面试官感觉就像是跟同龄人聊天一样&#xff0c;很可爱的小姐姐&#x1f603;。~~ 流程啥的就不说了&#xff0c;…

C++算法第十一天

本篇文章我们继续学习动态规划 第一题 题目链接 题目解析 代码原理 代码编写 class Solution { public: int uniquePathsWithObstacles(vector<vector<int>>& obstacleGrid) { int m obstacleGrid.size(), n obstacleGrid[0].size(); //建表 vector<v…

WebRTC搭建与应用(一)-ICE服务搭建

WebRTC搭建与应用(一) 近期由于项目需要在研究前端WebGL渲染转为云渲染&#xff0c;借此机会对WebRTC、ICE信令协议等有了初步了解&#xff0c;在此记录一下&#xff0c;以防遗忘。 第一章 ICE服务搭建 文章目录 WebRTC搭建与应用(一)前言一、ICE是什么&#xff1f;二、什么…

服务器数据恢复—RAIDZ离线硬盘数超过热备盘数导致阵列崩溃的数据恢复案例

服务器存储数据恢复环境&#xff1a; ZFS Storage 7320存储阵列中有32块硬盘。32块硬盘分为4组&#xff0c;每组8块硬盘&#xff0c;共组建了3组RAIDZ&#xff0c;每组raid都配置了热备盘。 服务器存储故障&#xff1a; 服务器存储运行过程中突然崩溃&#xff0c;排除人为误操…