【问题标题】:MySQL 5.1 database export fails while importing into MySQL 5.1导入 MySQL 5.1 时,MySQL 5.1 数据库导出失败
【发布时间】:2011-06-06 07:56:05
【问题描述】:

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

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

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

因此,如果有人知道可能导致错误的原因以及如何修复它,我将不胜感激。

【问题讨论】:

    标签: mysql mysqldump mysql-5.0 mysql-5.1


    【解决方案1】:

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

    【讨论】:

    • 如果表中有重复,他将无法手动添加索引。
    • 嗯,应该没有重复,因为那样我就不能让源数据库工作了,对吧?我尝试删除所有非主键 - 它不起作用。我将在下一个镜头中删除主键。
    • 好吧,解决方案是在导入之前从列中删除 AUTO_INCREMENT 属性。但是,仍然不明白为什么。索引实际上可以保留。然后 AUTO_INCREMENT 可以很容易地添加回来。混合了 Martin 和 Silver Light 的建议,但我想没有一个答案是完全正确的。
    【解决方案2】:

    如果在源数据库中一切正常,我唯一能想到的就是目标数据库没有将相应的列设置为 AUTO_INCREMENT。

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

    【讨论】:

    • 我没有尝试过,但我看到导入期间创建的表在主键上设置了 AUTO_INCREMENT,这是应该的。我想无论如何我都会尝试你的建议(在 Silver Light 之后)。
    【解决方案3】:

    解决方案是在导入之前从列中删除 AUTO_INCREMENT 属性。但是,仍然不明白为什么。索引实际上可以保留。然后可以轻松地将 AUTO_INCREMENT 添加回来。混合了 Martin 和 Silver Light 的建议,但我想没有一个答案是完全正确的。

    【讨论】:

      猜你喜欢
      • 2010-09-22
      • 2010-12-26
      • 2020-05-20
      • 2016-10-07
      • 2013-10-05
      • 1970-01-01
      • 2023-03-16
      相关资源
      最近更新 更多