sql >> Database >  >> RDS >> Mysql

MySQL - Fix Error - WordPress Database Error Dubbele invoer voor sleutel PRIMAIR voor query INSERT INTO wp_options

Zoals velen van jullie weten dat deze blog op WordPress draait en onder de motorkap van WordPress is er een MySQL-database. MySQL-database is redelijk goed en kan enorm veel verkeer bevatten dat deze blog elke dag ontvangt. Net als elke andere database heeft MySQL echter afstemming en goed beheer nodig. In deze blogpost zullen we bespreken hoe ik een zeer vreemde fout in WordPress Database Database heb ontvangen en hoe ik deze heb opgelost.

Vorige week kreeg ik plotseling een telefoontje van een vriend dat onze blog erg traag laadt. Welnu, wanneer een nieuwe blogpost wordt gepubliceerd of een nieuwsbrief wordt verzonden, is het heel gebruikelijk om een ​​piek in het verkeer te zien en tijdelijk traagheid in de prestaties van de website. In dit geval was de website echter constant traag. Na een tijdje vonden we een paar nieuwe problemen op de site. Vanwege de trage prestaties kwamen we er ook achter dat de WordPress-planner geen nieuwe blogposts publiceerde en geen routinematige back-up van het systeem maakte.

Na zorgvuldige diagnose kwam ik erachter dat het probleem met MySQL Database lag. Toen ik het foutenlogboek controleerde, vond ik de volgende fout in het logboek.

[Fri Sep 09 04:58:03 2016] [error] [client] WordPress-databasefout Dubbele invoer '3354142' voor sleutel 'PRIMARY' voor query INSERT INTO wp_options (option_name , option_value,autoload) WAARDEN (…)

Het was heel duidelijk dat er een schending van de primaire sleutel was in de optietabel. Het probleem was echter niet eenvoudig op te lossen, omdat ik persoonlijk geen transacties met deze tabel had gedaan of er de afgelopen tijd geen nieuwe update of plug-inwijziging was. Mijn eerste poging was om deze specifieke tabel te herstellen van een oudere databaseback-up (ik maak regelmatig een back-up van mijn site en de database). Zelfs dit specifieke probleem faalde en ik kon de fout niet verwijderen.

Eindelijk heb ik op internet gezocht, maar helaas was er geen echte hulp. Op dat moment besloot ik om verschillende trial and error te doen. Geloof me, ik besteed meer dan 4 uur en verschillende trucs om van deze fout af te komen. Het was me heel duidelijk dat het een logische integriteitsfout in de database was, ik moest tijd besteden aan veel tabellen en logica. Nou, na 4 uur vond ik eindelijk een oplossing en het was een heel eenvoudige oplossing. Ik wou dat ik dit eerder had geweten en niet meer dan 4 uur aan verschillende proeven en fouten had besteed.

Oplossing / oplossing:

Ik heb zojuist het volgende commando uitgevoerd, mijn probleem was opgelost.

REPAIR TABLE wp_options

Dat is het! Het was klaar.

De realiteit was dat mijn tabel beschadigd was en om dezelfde reden kreeg ik een foutmelding met betrekking tot de dubbele sleutel voor mijn databasetabel. Nadat ik de corruptie van de tabel had verholpen, werkte alles prima. Onthoud dat in mijn geval de wp_options-tabel beschadigd was, je moet deze vervangen door je tabelnaam en het script zal prima werken.

Als u bovendien alle tabellen in uw database wilt repareren, kunt u het volgende script uitvoeren en het zal scripts genereren voor elke afzonderlijke tabel in uw MySQL-database. Zodra u het script uitvoert, herstelt u elke afzonderlijke tabel van uw database.

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

Ik hoop dat je deze blogpost nuttig vindt. Als je ooit een probleem hebt met de WordPress MySQL-database, neem dan contact met me op, ik help je graag om eventuele fouten op te lossen.


  1. Hoe Oracle en Kafka . te integreren

  2. Herstel de mysql-database vanuit .frm-bestanden

  3. Top PostgreSQL-beveiligingsbedreigingen

  4. ORA-03113:einde bestand op communicatiekanaal