sql >> Databasteknik >  >> RDS >> Mysql

MySQL – Fix Error – WordPress Database Error Duplicate Entry for key PRIMARY for Query INSERT INTO wp_options

Som många av er vet att den här bloggen körs på WordPress och under huven på WordPress finns en MySQL-databas. MySQL-databasen är ganska bra och kan hålla massiv trafik som denna blogg får varje dag. Men precis som vilken databas MySQL som helst behöver justering samt korrekt hantering av densamma. I det här blogginlägget kommer vi att diskutera hur jag fick ett väldigt konstigt fel i WordPress Database Error och hur jag löste det.

Förra veckan fick jag plötsligt ett samtal från en vän att vår blogg laddas väldigt långsamt. Tja, när ett nytt blogginlägg publiceras eller nyhetsbrev skickas ut är det mycket vanligt att se en topp i trafiken och tillfälligt långsamma prestanda på webbplatsen. Men i det här fallet var webbplatsen konsekvent långsam. Efter ett tag hittade vi ett par nya problem på sidan. På grund av långsamma prestanda fick vi också reda på att WordPress-schemaläggaren inte publicerade nya blogginlägg och inte tog rutinmässig säkerhetskopiering av systemet.

Efter noggrann diagnostik kom jag på att problemet var med MySQL Database. När jag kollade felloggen hittade jag följande fel i loggen.

[fre sep 09 04:58:03 2016] [fel] [klient] WordPress-databasfel Dubblettpost '3354142' för nyckel 'PRIMÄR' för fråga INSERT INTO wp_options (option_name , option_value,autoload) VÄRDEN (…)

Det var mycket tydligt att det fanns en primärnyckelöverträdelse i alternativtabellen. Problemet var dock inte lätt att lösa eftersom jag personligen inte hade gjort några transaktioner med denna tabell eller så har det inte skett några nya uppdateringar eller plugin-ändringar den senaste tiden. Mitt första försök var att återställa just den här tabellen från äldre databassäkerhetskopiering (jag tar frekvent säkerhetskopiering av min webbplats och dess databas). Även detta problem misslyckades och jag kunde inte bli av med felet.

Slutligen sökte jag på internet men tyvärr fanns det ingen riktig hjälp. Vid den tiden bestämde jag mig för att göra olika försök och misstag. Lita på mig, jag spenderar över fyra timmar och olika knep för att bli av med det här felet. Det var mycket tydligt för mig att det var ett logiskt integritetsfel i databasen, jag var tvungen att spendera tid med massor av tabeller och logik. Nåväl, efter fyra timmar hittade jag äntligen en lösning och det var en väldigt enkel lösning. Jag önskar att jag hade vetat detta tidigare och inte skulle ha spenderat mer än 4 timmar på olika försök och misstag.

Lösning/fix:

Jag körde precis följande kommando så att mitt problem var löst.

REPAIR TABLE wp_options

Det är allt! Det var gjort.

Verkligheten var att min tabell var skadad och på grund av samma anledning fick jag ett fel relaterat till Duplicate Key för min databastabell. När jag väl fixade bordets korruption fungerade allt bra. Kom ihåg att i mitt fall var det wp_options-tabellen som var skadad, du måste ersätta den med ditt tabellnamn och skriptet kommer att fungera bra.

Om du dessutom bara vill reparera alla tabeller i din databas, kan du köra följande skript och det kommer att generera skript för varje enskild tabell i din MySQL-databas. När du kört skriptet kommer du att reparera varje enskild tabell i din databas.

SELECT CONCAT('repair table ', table_name, ';') 
FROM information_schema.tables 
WHERE table_schema='YourDatabaseName';

Jag hoppas att du tycker att det här blogginlägget är användbart. Om du någonsin har några problem med WordPress MySQL-databasen, kontakta mig, jag hjälper dig gärna att lösa eventuella fel relaterade till detsamma.


  1. MySQL – FOUND_ROWS() Funktion för totalt antal rader som påverkas

  2. Utlöser utlösare vid uppdatering av kolumnA eller kolumnB eller kolumnC

  3. Hur ändrar jag min session till att visa UTF8 i Oracle?

  4. Hur många rader i en databas är FÖR MÅNGA?