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

MySQL – Correzione dell'errore – Errore del database WordPress Voce duplicata per la chiave PRIMARY per Query INSERT INTO wp_options

Come molti di voi sanno che questo blog gira su WordPress e sotto il cofano di WordPress c'è un database MySQL. Il database MySQL è abbastanza buono ed è in grado di contenere un traffico enorme che questo blog riceve ogni giorno. Tuttavia, proprio come qualsiasi database, MySQL necessita di una messa a punto e di una corretta gestione dello stesso. In questo post del blog discuteremo di come ho ricevuto un errore molto strano Errore del database di WordPress e di come l'ho risolto.

La scorsa settimana, all'improvviso ho ricevuto una chiamata da un amico che il caricamento del nostro blog era molto lento. Ebbene, quando viene pubblicato un nuovo post sul blog o viene inviata una newsletter, è molto comune vedere un picco di traffico e una momentanea lentezza nelle prestazioni del sito web. Tuttavia, in questo caso, il sito web funzionava costantemente lentamente. Dopo un po' abbiamo riscontrato un paio di nuovi problemi sul sito. A causa della lentezza delle prestazioni, abbiamo anche scoperto che lo scheduler di WordPress non stava pubblicando nuovi post del blog e non eseguiva il backup di routine del sistema.

Dopo un'attenta diagnostica ho scoperto che il problema riguardava il database MySQL. Quando ho controllato il registro degli errori, ho trovato il seguente errore nel registro.

[Ven Sep 09 04:58:03 2016] [error] [client] Errore del database WordPress Voce duplicata '3354142' per la chiave 'PRIMARY' per la query INSERT INTO wp_options (option_name , valore_opzione,caricamento automatico) VALORI (...)

Era molto chiaro che c'era una violazione della chiave primaria nella tabella delle opzioni. Tuttavia, il problema non è stato facile da risolvere in quanto personalmente non avevo effettuato alcuna transazione con questa tabella o non ci sono stati nuovi aggiornamenti o modifiche ai plug-in negli ultimi tempi. Il mio primo tentativo è stato di ripristinare questa particolare tabella dal backup del database precedente (faccio backup frequenti del mio sito e del relativo database). Anche questo particolare problema non è riuscito e non sono stato in grado di eliminare l'errore.

Finalmente, ho cercato su Internet ma purtroppo non c'è stato un vero aiuto. A quel tempo, ho deciso di fare vari tentativi ed errori. Credimi, trascorro oltre 4 ore e vari trucchi per eliminare questo errore. Per me era molto chiaro che si trattava di un errore di integrità logica sul database, dovevo dedicare tempo con molte tabelle e logica. Bene, dopo 4 ore ho finalmente trovato una soluzione ed è stata una soluzione molto semplice. Avrei voluto saperlo prima e non avrei dedicato più di 4 ore a vari tentativi ed errori.

Soluzione/Correzione:

Ho appena eseguito il comando e il mio problema è stato risolto.

REPAIR TABLE wp_options

Ecco fatto! Era fatto.

La realtà era che la mia tabella era danneggiata e per lo stesso motivo stavo ricevendo un errore relativo alla chiave duplicata per la mia tabella del database. Una volta che ho corretto il danneggiamento della tabella, tutto ha funzionato bene. Ricorda, nel mio caso era la tabella wp_options ad essere danneggiata, devi sostituirla con il nome della tua tabella e lo script funzionerà correttamente.

Inoltre, se vuoi semplicemente riparare tutte le tabelle nel tuo database, puoi eseguire il seguente script che genererà script per ogni singola tabella nel tuo database MySQL. Una volta eseguito lo script, riparerai ogni singola tabella del tuo database.

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

Spero che tu possa trovare utile questo post del blog. In caso di problemi con il database MySQL di WordPress, contattami, sarò felice di aiutarti a risolvere qualsiasi errore relativo allo stesso.