sql >> Database teknologi >  >> RDS >> Mysql

MySQL – Ret fejl – WordPress-databasefejl Duplikatindtastning for nøgle PRIMÆR for forespørgsel INSERT INTO wp_options

Som mange af jer ved, at denne blog kører på WordPress og under hætten af ​​WordPress er der en MySQL-database. MySQL-databasen er ganske god og er i stand til at holde massiv trafik, som denne blog modtager hver dag. Men ligesom enhver database har MySQL brug for tuning samt korrekt styring af det samme. I dette blogindlæg vil vi diskutere, hvordan jeg modtog en meget mærkelig fejl i WordPress-databasefejl, og hvordan jeg løste den.

I sidste uge fik jeg pludselig et opkald fra en ven om, at vores blog indlæses meget langsomt. Nå, når et nyt blogindlæg udgives eller nyhedsbrev udsendes, er det meget almindeligt at se en stigning i trafikken og en kortvarig langsomhed i hjemmesidens ydeevne. I dette tilfælde kørte websitet dog konstant langsomt. Efter et stykke tid fandt vi et par nye problemer på siden. På grund af den langsomme ydeevne fandt vi også ud af, at WordPress-planlægningsprogrammet ikke udgav nye blogindlæg, ligesom vi ikke tog rutinemæssig sikkerhedskopiering af systemet.

Efter omhyggelig diagnosticering fandt jeg ud af, at problemet var med MySQL-databasen. Da jeg tjekkede fejlloggen, fandt jeg følgende fejl i loggen.

[Fre. Sep 09 04:58:03 2016] [fejl] [klient] WordPress-databasefejl Duplikatindtastning '3354142' for nøglen 'PRIMARY' for forespørgsel INSERT INTO wp_options (option_name , option_value,autoload) VÆRDIER (…)

Det var meget tydeligt, at der var en primær nøgleovertrædelse i indstillingstabellen. Problemet var dog ikke let at løse, da jeg personligt ikke havde foretaget nogen transaktioner med denne tabel, eller der var ingen ny opdatering eller plugin-ændringer i den seneste tid. Mit første forsøg var at gendanne denne særlige tabel fra ældre databasesikkerhedskopiering (jeg tager ofte backup af mit websted og dets database). Selv dette særlige problem mislykkedes, og jeg var ikke i stand til at slippe af med fejlen.

Til sidst søgte jeg på internettet, men desværre var der ingen reel hjælp. På det tidspunkt besluttede jeg at lave forskellige forsøg og fejl. Tro mig, jeg bruger over 4 timer og forskellige tricks for at slippe af med denne fejl. Det var meget tydeligt for mig, at det var en logisk integritetsfejl i databasen, jeg skulle bruge tid på en masse tabeller og logik. Nå, efter 4 timer fandt jeg endelig en løsning, og det var en meget enkel løsning. Jeg ville ønske, jeg havde vidst dette tidligere og ikke ville have brugt over 4 timer på forskellige forsøg og fejl.

Løsning / rettelse:

Jeg har lige kørt følgende kommando, så mit problem blev løst.

REPAIR TABLE wp_options

Det var det! Det blev gjort.

Realiteten var, at min tabel var beskadiget, og af samme grund fik jeg fejl relateret til Duplicate Key til min databasetabel. Da jeg fik rettet bordets korruption, fungerede alt fint. Husk, i mit tilfælde var det wp_options-tabellen, der var beskadiget, du skal erstatte den med dit tabelnavn, og scriptet vil bare fungere fint.

Yderligere, hvis du blot ønsker at reparere alle tabellerne i din database, kan du udføre følgende script, og det vil generere scripts for hver enkelt tabel i din MySQL-database. Når du har udført scriptet, vil du reparere hver enkelt tabel i din database.

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

Jeg håber, du finder dette blogindlæg nyttigt. Hvis du nogensinde har problemer med WordPress MySQL-databasen, skal du kontakte mig, jeg vil med glæde hjælpe dig med at løse enhver fejl relateret til det samme.


  1. VBA-kode for at tilføje sammenkædet tabel med primærnøgle

  2. Sådan får du den første post i hver gruppe i MySQL

  3. Sådan beregnes løbende total i MySQL

  4. Sådan omdøbes alle standardbegrænsninger i henhold til navnestandarder eller navngivningskonvention i SQL Server - SQL Server / TSQL vejledning del 93