最近在对一个 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
欢迎分享你的看法,也欢迎补充不同的实践经验。