2013-05-27 44 views
0

我已经导出一个MySQL v4.0.25脚本到一个SQL文件,因为我无法找到一个安装4.0了唯一的选择是使用4.1 .. 现在,我因为v4.0没有utf-8(只有latin-1),v4.1给我一个语法错误,所以得到了常见的1064错误。迁移脚本从MySQL 4.0到4.1

我可以手动编辑这些文件,但其中一个脚本是一个12GB大的文件,另一个是5GB,所以我甚至找不到一个编辑器能够打开一个大而且有问题的文件(这些文件非常大,因为它们是超过10年使用的2个生产数据库的副本)。

如何解决或绕过此问题?任何机会我都可以告诉导入脚本忽略有错误的行(我甚至不知道有多少行)?

回答

1

如果它仍然是可能的,使用mysqldump --tab=path转储SQL数据结构和CSV格式的数据表。这样,您需要做的任何修改都将放在小得多的sql文件上,从而保持大型数据文件不变。他们可以稍后使用mysqlimport命令导入整个事件。

或者,你总是可以用于导入您的SQL文件的mysql --force选项。

的更多信息:

对于手动编辑的文件:

如果你是usi的话NG Linux作为操作系统,然后有一个大品种在你的手的命令:lesssedmore,等sed是良好的替代,类似你的问题。一个不错的教程可以在http://www.grymoire.com/Unix/Sed.html

在Windows中可以找到,我有时使用PowerShell。我有关于"mysqldump without database name"的StackOverflow上的类似帖子,其中有一个如何替换转储文件中字符串的示例。

+0

虽然不是一个完整的答案的问题,这导致以正确的方式,使脚本运行,并忽略错误,与我讨论在以后的时间,所以我将其标记为正确的。谢谢 –

+0

不客气@Zed_Blade。祝你这个项目好运! – GregD