Ugrás a fő tartalomhoz

WordPress-es MySQL index és auto_increment hiba javítása

Ezek a hibák extrém esetben fordulnak elő, nagyon ritkák. Több dolog is okozhat ilyet, viszont jellemzően akkor tud megsérülni a WordPress adatbázisa, ha költöztetjük az oldalt, vagy az oldal mögötti szerveren sérül a MySQL, esetleg valamilyen hiba miatt leáll. Az alábbi felsorolásban található az összes szükséges index, illetve a megfelelő AUTO_INCREMENT beállítások (a legtöbb esetben ezek valamelyike sérül).

Mi az az index és mi az az AUTO_INCREMENT?

AUTO_INCREMENT egy adatbázis funkció, amelyet a relációs adatbázis-kezelő rendszerek (pl. MySQL, PostgreSQL) támogatnak. Ez a funkció automatikusan növeli az egyik oszlop értékét minden új rekord beszúrásakor.

Az index egy adatbázis-objektum, amely a táblákban található adatok gyorsabb keresését teszi lehetővé. Az indexek segítségével az adatbázis rendszer hatékonyan keresi meg az adott rekordokat, így csökkentve a lekérdezési időt és javítva az adatbázis teljesítményét.

Az ilyen adatbázishibák egyik tünete, hogy bár az oldal látszólag megfelelően működik, mégsem lehet új tartalmakat létrehozni, vagy esetleg különböző bővítményeket elmenteni. AUTO_INCREMENT hibáknál a duplikált ID miatt nem lehet menteni, hiszen azonos ID-val próbál tartalmat menteni az adatbázisba, ami nem lehetséges és nem fut le megfelelően az új tartalom mentése.

ALTER TABLE wp_termmeta MODIFY COLUMN meta_id bigint(20) unsigned NOT NULL auto_increment;
ALTER TABLE wp_terms MODIFY COLUMN term_id bigint(20) unsigned NOT NULL auto_increment;
ALTER TABLE wp_term_taxonomy MODIFY COLUMN term_taxonomy_id bigint(20) unsigned NOT NULL auto_increment;
ALTER TABLE wp_commentmeta MODIFY COLUMN meta_id bigint(20) unsigned NOT NULL auto_increment;
ALTER TABLE wp_comments MODIFY COLUMN comment_ID bigint(20) unsigned NOT NULL auto_increment;
ALTER TABLE wp_links MODIFY COLUMN link_id bigint(20) unsigned NOT NULL auto_increment;
ALTER TABLE wp_options MODIFY COLUMN option_id bigint(20) unsigned NOT NULL auto_increment;
ALTER TABLE wp_postmeta MODIFY COLUMN meta_id bigint(20) unsigned NOT NULL auto_increment;
ALTER TABLE wp_users MODIFY COLUMN ID bigint(20) unsigned NOT NULL auto_increment;
ALTER TABLE wp_posts MODIFY COLUMN ID bigint(20) unsigned NOT NULL auto_increment;
ALTER TABLE wp_usermeta MODIFY COLUMN umeta_id bigint(20) unsigned NOT NULL auto_increment;

CREATE INDEX term_id on wp_termmeta (term_id);
CREATE INDEX meta_key on wp_termmeta (meta_key(191));
CREATE INDEX slug on wp_terms (slug(191));
CREATE INDEX name on wp_terms (name(191));
CREATE UNIQUE INDEX term_id_taxonomy on wp_term_taxonomy (term_id, taxonomy);
CREATE INDEX taxonomy on wp_term_taxonomy (taxonomy );
CREATE INDEX comment_id on wp_commentmeta (comment_id);
CREATE INDEX meta_key on wp_commentmeta (meta_key(191));
CREATE INDEX comment_post_ID on wp_comments (comment_post_ID);
CREATE INDEX comment_approved_date_gmt on wp_comments (comment_approved,comment_date_gmt);
CREATE INDEX comment_date_gmt on wp_comments (comment_date_gmt);
CREATE INDEX comment_parent on wp_comments (comment_parent);
CREATE INDEX comment_author_email on wp_comments (comment_author_email(10));
CREATE INDEX link_visible on wp_links (link_visible);
CREATE UNIQUE INDEX option_name on wp_options (option_name);
CREATE INDEX post_id on wp_postmeta (post_id);
CREATE INDEX meta_key on wp_postmeta (meta_key);
CREATE INDEX post_name on wp_posts (post_name(191));
CREATE INDEX type_status_date on wp_posts (post_type,post_status,post_date,ID);
CREATE INDEX post_parent on wp_posts (post_parent);
CREATE INDEX post_author on wp_posts (post_author);
CREATE INDEX user_login_key on wp_users (user_login);
CREATE INDEX user_nicename on wp_users (user_nicename);
CREATE INDEX user_email on wp_users (user_email);
CREATE INDEX user_id on wp_usermeta (user_id);
CREATE INDEX meta_key on wp_usermeta (meta_key(191));

ALTER TABLE wp_terms AUTO_INCREMENT = 10000;
ALTER TABLE wp_term_taxonomy AUTO_INCREMENT = 10000;
ALTER TABLE wp_commentmeta AUTO_INCREMENT = 10000;
ALTER TABLE wp_comments AUTO_INCREMENT = 10000;
ALTER TABLE wp_links AUTO_INCREMENT = 10000;
ALTER TABLE wp_options AUTO_INCREMENT = 10000;
ALTER TABLE wp_postmeta AUTO_INCREMENT = 10000;
ALTER TABLE wp_users AUTO_INCREMENT = 10000;
ALTER TABLE wp_posts AUTO_INCREMENT = 10000;
ALTER TABLE wp_usermeta AUTO_INCREMENT = 10000;

veszély

Figyelj a megfelelő előtagra (wp_) és minden javítás előtt készíts mentést az adatbázisról.