基于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环境。

相关推荐
木辰風4 小时前
PLSQL自定义自动替换(AutoReplace)
java·数据库·sql
无限码力4 小时前
华为OD技术面真题 - 数据库MySQL - 3
数据库·mysql·华为od·八股文·华为od技术面八股文
heartbeat..4 小时前
Redis 中的锁:核心实现、类型与最佳实践
java·数据库·redis·缓存·并发
Prince-Peng4 小时前
技术架构系列 - 详解Redis
数据结构·数据库·redis·分布式·缓存·中间件·架构
虾说羊5 小时前
redis中的哨兵机制
数据库·redis·缓存
_F_y5 小时前
MySQL视图
数据库·mysql
2301_790300965 小时前
Python单元测试(unittest)实战指南
jvm·数据库·python
VCR__5 小时前
python第三次作业
开发语言·python
韩立学长5 小时前
【开题答辩实录分享】以《助农信息发布系统设计与实现》为例进行选题答辩实录分享
python·web
九章-5 小时前
一库平替,融合致胜:国产数据库的“统型”范式革命
数据库·融合数据库