wp_termmeta Hatası

WordPress kullanıyorsanız taşıma ve güncelleme sonrasında -özellikle de MariaDB’ ye geçmişken- Apache’ nin hata kayıtlarında “blog.wp_termmeta’ doesn’t exist in engine” gibi bir hatayla karşılaşabilirsiniz; evet, can sıkıcı bir durum. Sitenin çalışmasına etkisi yok sanırım ama gereksiz yere kayıt(log) tutuyor. Hadi şimdi kurtulalım şundan.

phpMyAdmin’ de de şöyle bir şey görürsünüz:

Anlatımı Raspbian’ a göre yapmaya çalışacağım, Debian tabanlı başka bir Linux dağıtımında da çok fazla fark olmayacaktır sanırım.

Öncelikle, terminale “sudo pcmanfm” yazarak dosya yöneticisini süper kullanıcı olarak açalım ve “/var/lib/mysql/sizinveritabanineyse” klasörüne girelim ve dosya uzantısı fark etmeden “wp_termmeta” dosyalarını silelim.

Sonra da terminale “sudo service mysql restart” yazarak mysql sunucusunu yeniden başlatalım ve phpMyAdmin’ den ilgili veritabanına girmişken SQL bölümünde şu kodu çalıştıralım:

CREATE TABLE `wp_termmeta` (
`meta_id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`term_id` bigint(20) unsigned NOT NULL DEFAULT '0',
`meta_key` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
`meta_value` longtext COLLATE utf8mb4_unicode_ci,
PRIMARY KEY (`meta_id`),
KEY `term_id` (`term_id`),
KEY `meta_key` (`meta_key`(191))
) ENGINE=InnoDB AUTO_INCREMENT=3255 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

Hadi geçmiş olsun, artık sorun kalmadı. 😀 Apache hata kayıtlarında artık “doesn’t exist in engine” görmüyoruz. 🙂

Olur da lazım olursa diye WordPress tablo yapısını WordPress Codex’ inde şu sayfada bulabilirsiniz.