使用 Python 脚本将 MySQL 数据库迁移到 SQLite 是一种灵活且强大的方法。
下面是一个基本的脚本示例,使用 pandas
和 sqlite3
库来实现这一过程。
这个脚本假设你已经安装了 pandas
和 mysql-connector-python
库。
步骤
安装必要的库:
如果尚未安装,请使用 pip 安装:
pip install pandas mysql-connector-python
Python 脚本:
以下是一个示例脚本,用于从 MySQL 读取数据并将其写入 SQLite:
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,同时还可以根据需要进行定制和扩展。