基于python实现批量执行sql文件到MySQL数据库exe工具(云服务器或本地MySQL服务器)

如何执行批量执行SQL的exe文件

概述

本文档详细说明了如何使用生成的 batch_exec_sql.exe 文件来批量执行SQL文件到MySQL数据库中。

执行位置

是的,您需要在SQL文件所在的目录下执行exe文件。

原因:

  • 脚本会在当前执行目录中查找所有 .sql 文件
  • 如果在其他目录执行,可能会找不到需要执行的SQL文件

使用方法

方法一:直接在SQL文件目录执行

  1. 将exe文件复制到SQL文件目录

    • 找到生成的 batch_exec_sql.exe 文件(位于 dist 目录中)
    • 将其复制到包含SQL文件的目录中
  2. 运行exe文件

    • 双击 batch_exec_sql.exe 文件
    • 或在命令行中进入该目录并执行 batch_exec_sql.exe
  3. 输入配置信息

    • 按照提示输入数据库配置信息,包括:
      • 数据库主机地址(默认为localhost,直接按回车使用默认值)
      • 数据库用户名(默认为root,直接按回车使用默认值)
      • 数据库密码(输入时不会显示,确保输入正确)
      • 数据库名称(默认为ims_dev,直接按回车使用默认值)
      • 数据库端口(默认为3306,直接按回车使用默认值)
      • 数据库字符集(默认为utf8mb4,直接按回车使用默认值)
  4. 等待执行完成

    • 脚本会自动执行目录下的所有SQL文件
    • 执行完成后,会显示执行结果统计

方法二:通过命令行指定目录

如果您不想复制exe文件,也可以通过命令行方式执行:

  1. 打开命令行窗口

    • 按下 Win + R,输入 cmd,然后按回车
  2. 切换到SQL文件目录

    • 使用 cd 命令切换到包含SQL文件的目录
    • 例如:cd C:\path\to\sql\files
  3. 执行exe文件

    • 输入完整的exe文件路径并执行
    • 例如:C:\path\to\batch_exec_sql.exe
  4. 输入配置信息

    • 与方法一相同,按照提示输入数据库配置信息
  5. 等待执行完成

    • 执行完成后,会显示执行结果统计

执行过程示例

复制代码
请输入数据库主机地址 [localhost]: 
请输入数据库用户名 [root]: 
请输入数据库密码: 
请输入数据库名称 [ims_dev]: 
请输入数据库端口 [3306]: 
请输入数据库字符集 [utf8mb4]: 
正在连接数据库...
数据库连接成功!
找到 128 个SQL文件
执行文件 1/128: act_app_appdef.sql
执行文件 2/128: act_app_databasechangelog.sql
...
执行文件 128/128: sys_user_role.sql

执行完成!
总文件数: 128
成功执行: 94
执行失败: 34
总执行时间: 2.28 秒
数据库连接已关闭
请按任意键继续...

常见问题及解决方案

1. 找不到SQL文件

问题:执行时显示 "找到 0 个SQL文件"

解决方案

  • 确保在SQL文件所在的目录下执行exe文件
  • 确保目录中确实存在 .sql 后缀的文件
  • 检查文件扩展名是否正确(应为 .sql,而不是 .txt 等其他扩展名)

2. 数据库连接失败

问题:执行时显示 "数据库操作出错: (1045, "Access denied for user 'root'@'localhost' (using password: YES)")"

解决方案

  • 检查数据库服务是否已启动
  • 确保输入的数据库密码正确
  • 确保数据库用户有足够的权限
  • 确保数据库名称正确且已存在

3. 执行过程中出现错误

问题:执行某些SQL文件时出现错误

解决方案

  • 外键约束失败:调整SQL文件的执行顺序,先执行被依赖的表
  • 主键重复:删除数据库中的现有数据,或修改SQL文件中的插入语句
  • SQL语法错误:手动编辑SQL文件,移除非SQL内容

4. 执行完成后无响应

问题:执行完成后窗口没有自动关闭

解决方案

  • 这是正常现象,按任意键即可关闭窗口

注意事项

  1. 备份数据:执行前请备份数据库,以防数据丢失
  2. 权限问题:确保数据库用户有足够的权限执行SQL语句
  3. 文件编码:确保SQL文件的编码格式正确,建议使用UTF-8编码
  4. 执行顺序:对于有依赖关系的表,可能需要调整SQL文件的执行顺序
  5. 错误处理:脚本会尝试执行所有文件,即使某些文件执行失败也会继续执行其他文件

总结

  • 必须在SQL文件所在的目录下执行exe文件
  • 执行时会提示输入数据库配置信息,可使用默认值
  • 执行完成后会显示详细的执行结果统计
  • 对于执行失败的文件,需要根据错误信息手动处理

通过以上步骤,您可以轻松使用 batch_exec_sql.exe 文件批量执行SQL文件到MySQL数据库中,无需安装Python环境。

相关推荐
一个响当当的名号3 分钟前
lectrue15 并发控制理论
数据库
野犬寒鸦14 分钟前
Java8 ConcurrentHashMap 深度解析(底层数据结构详解及方法执行流程)
java·开发语言·数据库·后端·学习·算法·哈希算法
艾醒(AiXing-w)21 分钟前
技术速递——通义千问 3.5 深度横评:纸面超越 GPT‑5.2,实测差距在哪?
人工智能·python·语言模型
tod11335 分钟前
Redis 分布式锁进阶:从看门狗到 Redlock 的高可用实践
数据库·redis·分布式
山岚的运维笔记37 分钟前
SQL Server笔记 -- 第69章:时态表
数据库·笔记·后端·sql·microsoft·sqlserver
喵手38 分钟前
Python爬虫实战:自动化构建 arXiv 本地知识库 - 从 PDF 下载到元数据索引!
爬虫·python·自动化·arxiv·本地知识库·pdf下载·元数据索引
百锦再38 分钟前
Java InputStream和OutputStream实现类完全指南
java·开发语言·spring boot·python·struts·spring cloud·kafka
闲人编程41 分钟前
Celery分布式任务队列
redis·分布式·python·celery·任务队列·异步化
一只理智恩43 分钟前
向量数据库在AI领域的核心作用、优势与实践指南
数据库·人工智能
deephub44 分钟前
深入RAG架构:分块策略、混合检索与重排序的工程实现
人工智能·python·大语言模型·rag