【问题标题】:How can I get this SQL dump to import into PhpMyAdmin without this error?如何在没有此错误的情况下将此 SQL 转储导入 PhpMyAdmin?
【发布时间】:2015-11-13 11:04:23
【问题描述】:

我正在尝试使用 PhpMyAdmin 将实时 WordPress 站点中的 SQL 转储导入本地 MAMP 开发环境,以便可以在本地对站点进行编辑。我不断收到此错误:

错误
SQL 查询:INSERT INTO `wp_options` VALUES (259568, '_transient_timeout_geoip_98.80.4.79', '1440122500', 'no');

MySQL 说:文档
#1062 - 键 'PRIMARY' 的重复条目 '259568'

我对 SQL 的了解很少。可能是什么原因造成的?我需要做什么才能解决问题,以便成功导入数据库并让网站在本地启动和运行?

【问题讨论】:

    标签: mysql sql wordpress phpmyadmin


    【解决方案1】:

    您可以将INSERT 语句替换为INSERT IGNORE。这有助于导入条目,即使它们有重复项。

    如果你使用类unix操作系统,可以使用sed命令替换insert:

    cat dump.sql | sed s/"^INSERT"/"INSERT IGNORE"/g > dump-new.sql
    

    或者您可以为mysqldump 添加选项--insert-ignore 以编写INSERT IGNORE 语句而不是INSERT 语句。

    对于通过 phpMyAdmin 导出,可以设置一个选项:

    Settings -> Export -> SQL -> Use ignore inserts
    

    【讨论】:

    • 我没有使用终端,只是 phpmyadmin。 mysql 转储来自 WordPress 插件,因为我无权访问服务器端的 phpmyadmin。我通常只使用前端的东西,所以我对数据库和 sql 有点不了解。此命令是否仍适用于 phpmyadmin?不幸的是,在我从星期一开始一周后回去工作之前,我将无法再搞砸它,但这让我把头发拔掉了。
    • 但这必须在实时服务器 PhpMyAdmin 上完成?我目前无法访问它......我可以做些什么来获取我已经必须工作的当前 SQL 转储吗?我可能误会你了……
    • 我误解了你关于 phpMyAdmin 的问题。所以你通过 phpmyadmin 在本地导入转储,对吗?如果是,请设置选项Settings -> SQL Queries -> Ignore multiple statement errorsSettings -> Import -> CSV -> Do not abort on INSERT error,然后导入转储。
    • 是的,这是正确的,我有一个来自实时网站的 SQL 转储,并正在尝试将其导入本地 PhpMyAdmin。这听起来像我需要的。这导致其他问题的可能性有多大?感谢您的帮助
    • 这确实使导入成功完成,但是我仍然遇到数据库问题。我最终使用了 WordPress 的复制器插件。由于站点太大,我不得不过滤掉 /wp-content 和其他一些文件夹来构建包,然后在恢复站点后将它们添加回来。这并没有解决这个特定的问题,但至少我解决了这个问题。
    【解决方案2】:

    您的表已经有一条主键值为 259568 的记录,并且主键必须是唯一的。删除现有记录将允许您插入此记录,但删除现有记录也可能会导致问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-01-13
      • 1970-01-01
      • 1970-01-01
      • 2022-01-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多