有一个 MySQL 备份文件,它是一个巨大的文件 - 大约 3 GB。有一个表具有存储 JPEG 图像数据的 LONGBLOB 列。
如果从 MySQL Workbench - Data Import/Restore 完成,文件导入成功。
我需要打开这个文件并提取前几行(大约两行带有图像数据的表的 INSERT),以便我可以测试另一个程序是否可以将此数据导入另一个 MySQL 数据库。
我尝试使用 EmEditor 打开文件(它擅长打开大文件),然后仅将脚本的一个 Insert 语句复制/粘贴到一个新文件中(直到第 25 行,因为有问题的表是第一个表备份脚本),然后将所选内容粘贴到新文件中。
问题来了:
然而,这弄乱了编码(即使我保存为 utf8)。当我尝试将这个新文件(再次使用 MySQL Workbench)导入(恢复)到 MySQL 数据库中时,我意识到这一点,恢复继续进行而没有错误,但是 blob 列中的 JPEG 图像现在被破坏/损坏。
我的猜测是原始文件和新文件之间的编码不同。
EmEditor 不显示原始文件的编码,有一个检测选项,它检测为 'UTF8 Unsigned'。但是保存时我将它保存为UTF8。我也尝试另存为 ANSI、ISO8859(Windows 默认)等,但每次都得到相同的结果。
您对这个特定问题有任何解决方案吗?即我只想剪切大备份文件的前几行并保存到一个新文件中,保持编码相同,这样图像(blob)就不会改变。有什么方法可以用 EmEditor 完成(即我的方法是否错误[即剪切粘贴]?)是否有任何专门的软件可以做到这一点?我如何诊断这里出了什么问题?
感谢您的任何回复。