导入MySQL 5.1时MySQL 5.1数据库导出失败

问题描述:

我有一个特别奇怪的问题把数据放入我的生产服务器。我的测试服务器运行MySQL 5.1.41。我导出数据库(通过mysqldump和PHPMyAdmin尝试),然后尝试导入到运行MySQL 5.0.92的生产服务器。导入MySQL 5.1时MySQL 5.1数据库导出失败

在其中一个表中,我收到一个错误“#1062 - 键1的重复项”1“。该表具有PRIMARY键和UNIQUE组合键。当我查看phpmyadmin错误的输出时,我没有看到任何重复项。

我已经尝试过: - 使用“添加自动增量”选项导出 - 检查排序规则是否相同。他们是。此外,问题的关键是数字。

所以,如果有人知道可能会导致错误,以及如何解决它 - 我将不胜感激。

解决方法是在导入之前从列中删除AUTO_INCREMENT属性。尽管如此,仍然不明白为什么。这些指标实际上可以停留。然后AUTO_INCREMENT可以很容易地加回去。 Silver Light提议的混合物,但我猜想没有一个答案是完全正确的。

尝试从转储中的表中删除索引,然后在导入所有数据时手动添加它。

+0

如果表中有重复项,他将无法手动添加索引。 – 2011-06-06 08:06:00

+0

那么,应该没有重复,因为那样我就无法使源数据库工作,对吧?我试着删除所有非主键 - 它不起作用。作为下一个镜头,我将删除主键。 – Aurimas 2011-06-06 08:26:58

+0

那么,解决方案是在导入之前从列中删除AUTO_INCREMENT属性。尽管如此,仍然不明白为什么。这些指标实际上可以停留。然后AUTO_INCREMENT可以很容易地加回去。 Martin&Silver Light提出的混合物,但我想没有一个答案是完全正确的。 – Aurimas 2011-06-06 11:32:12

如果在源数据库中一切正常,我唯一能想到的是目标数据库不会将适当的列设置为AUTO_INCREMENT。

您是否尝试过在目标数据库中手动创建该表,并在导入源转储之前将问题列设置为AUTO_INCREMENT?

+0

我还没有尝试过,但我看到在导入过程中创建的表具有AUTO_INCREMENT在主键上的设置,因为它应该如此。无论如何,我会尝试你的建议,我猜(在Silver Light之后)。 – Aurimas 2011-06-06 08:25:36