2016-01-21 73 views
0

我们将WooCommerce网店移至新服务器,并且数据库和Wordpress的通信出现问题,似乎数据库被损坏了。 当我导入DB到新服务器的空数据库,它提供了错误Wordpress无法在迁移后向数据库写入

1062 - 重复录入“0”键“PRIMARY”

前端看起来不错,但许多地区不起作用(我相信写入数据库的地方发生) - 例如。评论,文件上传和订单 - 这给502错误。

我检查Error_log和它给像一些错误,这

[21-JAN-2016 16点28分27秒UTC] WordPress的adatbázis丝柏重复的关键 '主要' 一lekérdezésbenINSERT进入 '0' INTO wp_postspost_authorpost_datepost_date_gmtpost_contentpost_content_filteredpost_titlepost_excerptpost_statuspost_typecomment_statusping_statuspost_passwordpost_nameto_pingpingedpost_modifiedpost_modified_gmt,(1,'2016-01-21 17:28:27','2016-01-21 16:28:27','','','订单–január21,2016年2月21日, 2016 @ 05:28 DU。','Próba','wc-pending','shop_order','open','closed','order_56a1072beeea3','rendeles-jan-21-2016-0428-pm',' ','','2016-01-21 17:28:27','2016-01-21 16:28:27',0,0,'','')készítetterequire('wp-blog-header .php'),require_once('wp-includes/template-loader.php'),do_action('template_redirect'),call_user_func_array,WC_AJAX :: do_wc_ajax,do_action('wc_ajax_checkout'),call_user_func_array,WC_AJAX :: checkout,WC_Checkout- > process_checkout,WC_Checkout-> create_order,wc_create_order,wp_insert_post

所以我相信它无法写入数据库中相应的字段,并失败。

任何想法,我该如何解决这个问题?

+0

它看起来可能是你的表和数据通过,但auto_increment没有设置在你的主键?检查有问题的表上的模式,并查看主键是否配置了AUTO INCREMENT值。 –

+0

谢谢,我该怎么做,通过phpMyAdmin? – Gas

+0

我继续并发布了一个完整的答案 - 希望有所帮助! –

回答

1

问题很可能是表格字段的某些属性(如AUTO_INCREMENT)没有在模式复制时被复制。

如果您使用的是phpMyAdmin,您可以在数据库中找到表格,然后单击结构选项卡。对于wp_posts,你可能会看到这样的内容:

enter image description here

在这种情况下,ID是标识列,而这个表有AUTO_INCREMENT集。如果您的表格中缺少这些信息,请点击Change按钮,您将看到设置它的选项。

不幸的是,如果你有一个表缺少AUTO_INCREMENT,你可能有其他的 - 如果缺少模式的一部分,其他重要的东西(唯一键,索引等)也可能被排除 - 所以你应该可能需要重新评估数据库导入脚本以查看是否可以导出完整的数据库模式。

+0

谢谢克里斯汀。所以我需要将所有的第一行设置为AUTO?当我尝试在meta_id中创建它时,就像它在旧域中设置一样,我得到这个错误:#1075 - 错误的表定义;只能有一个自动列,并且必须将其定义为键。 如果全部失败,我们可以尝试恢复较旧的备份,但由于它是一个正常运行的网上商店,因此这不是一个明智的想法。 – Gas

+0

谢谢,最后我带了MySQL Dumper,然后从旧的DB重新导入数据库,现在它可以工作了!干杯! – Gas

+0

对不起,我没有早点回复你,但很高兴它的工作!可能是您的第一次导出没有提供完整的模式。 –