【问题标题】:exporting wordpress db from godaddy phpmyadmin to local mamp phpmyadmin shows 1062 duplicate entry for key primary将 wordpress db 从 godaddy phpmyadmin 导出到本地 mamp phpmyadmin 显示 1062 键主条目重复
【发布时间】:2020-06-16 11:07:52
【问题描述】:

尝试从 Godaddy 导出 Wordpress 生产数据库并导入本地 MAMP,但出现此错误。

【问题讨论】:

  • 字符编码错误?
  • @ryan 你是怎么解决的?我做吗,它本身在服务器的phpmyadmin中?还是在我导入 MAMP 之前?我该怎么做??
  • 鉴于这些替换字符,这只是我的猜测。我认为 mysql 数据库和表有几种不同的字符编码设置。弄清楚如何查询这些值并确保字符编码匹配。如果他们不将目标数据库更改为源数据库的编码。
  • 你是用哪个phpMyAdmin版本导出的,新服务器上导入的版本是什么?
  • 提供SHOW CREATE TABLESHOW VARIABLES LIKE 'c%';(两台服务器),以及如何执行专家和导入的细节。此外,每台机器上的 MySQL 版本号。请提供文字,而不是图片。

标签: mysql wordpress phpmyadmin


【解决方案1】:

在这种情况下,我建议首先从站点运行的当前位置(phpMyAdmin)更改字符编码,一旦成功更改编码,您就可以修复因重复而触发的表。

通过修复表,您应该能够在之后不会遇到此类问题。同样从它的外观来看,如果您仍然遇到重复错误,您可以删除 Wordfence 积压日志(我怀疑在正确的字符编码后修复表后您是否会运行放)。

【讨论】:

  • 能否请您指导我如何更改 wordpress db 的字符集。我猜字符集和排序规则必须匹配。我也不想在生产中接触数据库,所以我可以使用文本编辑器编辑转储文件并在本地导入吗?对您的建议没有太多经验,因此我们将不胜感激。
【解决方案2】:

这通常是由于导出数据库的字符编码与新数据库的默认编码不匹配。

要检查这一点,请从 Godaddy 导出一个新的数据库并搜索此行:

`meta_key` varchar(255) COLLATE

在 COLLATE 之后你应该会看到编码字符串,例如:

`meta_key` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL

所以对我来说,我需要确保将数据库导入支持 utf8mb4_unicode_ci 的新数据库,但您遇到的错误在 utf8mb4_unicode_520_ci 中更常见好像你的 MAMP 已经过时了,它可能还不支持它。

解决方案 1

创建一个新数据库并设置联盟以匹配您在 sql 文件中找到的那个。联盟设置就在您键入表名的位置旁边:

解决方案 2

如果您需要的联盟不存在,请将 MAMP 更新到最新版本,这将拥有所有最新的联盟,并且如果您在创建新数据库时选择匹配的联盟,它将为您成功导入。

解决方案 3

查找并替换 utf8mb4_unicode_ci(或任何您的编码类型)并将其替换为 utf8_unicode_ci。现在导入 sql 文件。

这个有点老套,但它可以让你导入文件,但根据你以前的编码,你可能会得到随机符号,打印不正确,需要替换。

旁注: 这可能是 Wordfence 问题,它有大量包含大量内容的表格。我强烈建议您在导出之前将其删除,但请务必勾选“删除 Wordfence 表和停用数据”选项。

此设置在 Wordfence -> 所有选项 -> 常规 Wordfence 选项中可用

【讨论】:

    猜你喜欢
    • 2015-06-09
    • 1970-01-01
    • 2017-10-09
    • 2017-04-30
    • 2011-03-17
    • 1970-01-01
    • 2011-08-17
    • 1970-01-01
    • 2016-03-07
    相关资源
    最近更新 更多