You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SQLite迁移至MySQL时Blob格式PNG图片批量导入方案咨询

可行实现方案

方案1:Python脚本批量导入(推荐,兼容性最高)

适合任意数据量,无需调整数据库配置,出错概率低:

  • 先安装依赖包:pip install pymysql
  • 修改以下脚本中的配置项后直接运行即可:
import os
import pymysql

# 以下配置项按实际情况修改
IMG_DIR = "/path/to/your/png/dir"  # 导出PNG图片的存储目录
DB_CONFIG = {
    "host": "127.0.0.1",
    "port": 3306,
    "user": "你的MySQL用户名",
    "password": "你的MySQL密码",
    "db": "目标数据库名",
    "charset": "utf8mb4"
}
TARGET_TABLE = "你的目标表名"  # 要插入Photo字段的表名

# 初始化数据库连接
db_conn = pymysql.connect(**DB_CONFIG)
cursor = db_conn.cursor()

try:
    processed_count = 0
    # 遍历所有PNG文件
    for file_name in os.listdir(IMG_DIR):
        if not file_name.lower().endswith(".png"):
            continue
        # 从文件名提取对应行ID(要求文件名格式为{ID}.png)
        row_id = os.path.splitext(file_name)[0]
        if not row_id.isdigit():
            continue
        # 读取图片二进制内容
        img_full_path = os.path.join(IMG_DIR, file_name)
        with open(img_full_path, "rb") as f:
            blob_content = f.read()
        # 执行更新写入
        update_sql = f"UPDATE {TARGET_TABLE} SET Photo = %s WHERE id = %s"
        cursor.execute(update_sql, (blob_content, int(row_id)))
        processed_count += 1
    db_conn.commit()
    print(f"导入完成,共处理{processed_count}条图片数据")
except Exception as e:
    db_conn.rollback()
    print(f"导入出错已回滚,错误信息:{str(e)}")
finally:
    cursor.close()
    db_conn.close()

方案2:MySQL原生命令导入(适合小批量数据)

无需编写代码,仅需执行SQL语句,但需要调整数据库配置:

  • 先开启允许本地文件导入权限:执行SQL SET GLOBAL local_infile = 1;
  • 确认所有PNG文件存放在MySQL secure_file_priv配置指定的可读取目录下
  • 批量生成更新语句执行,单条语句示例:
UPDATE 你的表名 SET Photo = LOAD_FILE('/完整路径/到/图片/1.png') WHERE id = 1;

可通过Excel、文本编辑器批量拼接所有ID对应的更新语句后,一次性执行即可。

迁移注意事项
  • 提前备份MySQL目标表的全量数据,避免更新操作错误覆盖已有数据
  • 确认MySQL目标表的Photo字段类型足够存储PNG:TINYBLOB最大255B、BLOB最大64KB、MEDIUMBLOB最大16MB、LONGBLOB最大4GB,通常PNG图片建议设为MEDIUMBLOB或LONGBLOB,避免写入时数据截断
  • 写入完成后抽样校验:随机取几个ID,将数据库中Blob字段导出为PNG,和原文件比对MD5或直接打开验证是否正常
  • 后续同类型项目建议优先将图片等静态文件存储到对象存储服务,数据库仅存储文件路径,可大幅降低跨数据库迁移的复杂度,同时数据库性能也会更好

内容的提问来源于stack exchange,提问作者bellamym

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 22:06:04