2016-01-21 75 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

對不起,我沒有早點回復你,但很高興它的工作!可能是您的第一次導出沒有提供完整的模式。 –