数字营销 · Web开发 · 基础设施

MySql文件切割工具

针对 mysqldump 生成的大型 SQL 备份文件,开发一个按数据库进行切割的 Python 工具。

最近在对一个 MySQL 服务器的数据进行备份后,发现利用 mysqldump 备份出来的 SQL 文件体积比较大,导入到其他服务器的时候很容易出现错误。

于是就想到把 SQL 文件切割成一个个的小文件。

在网上找了一些工具之后,发现这些工具并不是特别好用。其中比较典型的问题,是把 SQL 文件的结构和内容分开。

由于我这个 MySQL 服务器备份出来的 SQL 文件中包含了多个数据库,如果简单按照文件大小进行切割,就可能出现这样的问题:

最终切割出来的 SQL 文件,不知道应该导入到哪个数据库。

根据这种情况,我自己开发了一个比较简单的 SQL 文件切割工具。

这个工具主要的功能就是:

根据 SQL 文件中数据库的数量,把 SQL 文件切割成相应的多个文件。

下载地址:

工具说明

这个工具比较简单,使用 Python 开发。

为了方便 Windows 用户使用,我使用 PyInstaller 将 Python 程序打包成了 EXE 文件,因此在 Windows 平台上可以直接使用,不需要另外安装 Python。

使用方法

Windows

首先,把:

sqlcut.exe

复制到:

C:\Windows\System32

目录下,或者把 sqlcut.exe 所在目录加入系统的 %PATH% 环境变量。

完成之后,打开:

开始 → 运行 → cmd

然后输入:

sqlcut SQL文件

例如:

sqlcut alldatabase.sql

如果 SQL 文件路径中包含空格,需要使用引号括起来,例如:

sqlcut "D:\Documents and Settings\alldatabase.sql"

程序执行之后,会将切割出来的 SQL 文件保存到和原始文件相同的目录中。

Linux

首先,把sqlcut复制到:

/usr/bin

并增加执行权限,或者把 sqlcut 所在目录加入系统的 $PATH 环境变量。

完成之后,直接执行:

sqlcut SQL文件

例如:

sqlcut alldatabase.sql

程序同样会把切割出来的 SQL 文件保存到原始 SQL 文件所在的目录。

这个工具主要就是针对 mysqldump 生成的较大 SQL 备份文件,在需要拆分备份数据的时候进行使用。

评论0

欢迎分享你的看法,也欢迎补充不同的实践经验。