MySQL迁移SQLite 借助PYTHON脚本

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

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

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

步骤

安装必要的库:

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

bash 复制代码
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)
    
    # 将数据写入 SQLite
    df.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,同时还可以根据需要进行定制和扩展。

相关推荐
趣知岛7 分钟前
2026最新Python零基础入门教程,从环境搭建到实战精通(附源码)
python·青少年编程
zx28596340019 分钟前
Laravel5.x版本革新特性全解析
mysql·gateway·智能路由器
努力努力再努力FFF1 小时前
别再乱学PS、Python了,普通大学生该看懂的技能趋势
开发语言·python
呆萌的代Ma1 小时前
docker内的n8n配置Code节点运行python代码
python·docker·容器
shaoming37762 小时前
检查系统硬件配置是否满足PyCharm最低要求
android·spring boot·mysql
czlczl200209253 小时前
MAX()和MIN()优化
数据库·mysql·性能优化
开源情报局3 小时前
79%的企业在用AI Agent,但只有2%规模化落地——问题出在哪?
人工智能·python
算法与双吉汉堡3 小时前
【Nanobot项目笔记】项目架构
python·ai·agent·智能体
knight_9___3 小时前
LLM工具调用面试篇6
人工智能·python·面试·职场和发展·llm·agent
用户3962691060033 小时前
asyncio + subprocess:Python异步调用外部命令踩坑实录
python