am Steigerhaus

als allererstes auf 5.4.1

bunte HeckeDer Monat April begann bei mir mit einem WordPress-Update auf Version 5.4 und endet mit dem nächsten Update auf Version 5.4.1. Während es am Monatsanfang eine „Nuller-Version“ war, mit denen ich es eher relaxt angehe, war es heute die Version mit einer eins am Ende. Das deutet meistens auf „Probleme“ hin, die man gelegentlich etwas schneller schließen sollte.:

am SteigerhausAlso spielte ich die neue Version schon vor dem Frühstück ein. Für das Update selbst benutzte ich weiterhin meinen Script, der erst ein Backup der Datenbank anlegt, bevor er die neuen Files entpackt. Das lief auch alles klaglos durch und so war ich schnell wieder online, also wieder einen Dank an die WordPress-Entwickler. Als nächstes aktualisierte ich auch gleich noch ein Plugin, dass in den letzten Tagen schon mehrfach fortgeschrieben worden war. Auch dieses Update lief erstmal gut durch, brachte dann aber eine Fehlermeldung ins DashBoard:

Yoast SEO was unable to create the database tables required and as such will not function correctly.

Please read this help article to find out how to resolve this problem.

am TeichIn dem Hilfe-Artikel steht, dass wohl Rechte fehlen, um eine neue Tabelle zu erstellen. Komisch, bisher hatte das hinzufügen von Plugins und das damit verbundene (gelegentliche) erstellen neuer Tabellen noch nie zu einen Fehler geführt. Eine Kontrolle der vorhandenen Rechte zeigte auch, dass der WordPress-User durchaus das Recht „CREATE“ hat.
Im SQL-log fand ich dann aber tatsächlich den Hinweis, dass das WordPress-Plugin eine Tabelle erstellen möchte und es dabei einen Fehler gibt. Blick durch die OLGAAlso probierte ich dieses Statement mit den Rechten des WordPress-Users auch einmal aus und siehe da die Tabelle gibt es schon. Offensichtlich hat das YoastSEO-Plugin diese Tabelle schon irgendwann mal erzeugt und stolpert nun darüber, dass sie schon existiert. Sowas kann ja mal passieren, aber muss man dann gleich so selbstgefällig sein und als einzigen brauchbaren Tipp zum Provider-Wechsel aufrufen? – Das finde ich ziemlich unnötig.

mysql -u wordpress -p
Enter password: 
Welcome to the MariaDB monitor.  Commands end with ; or \g.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> use wordpress;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
MariaDB [wordpress]> CREATE TABLE `zvwxy_yoast_indexable` (
  `id` int(11) UNSIGNED auto_increment NOT NULL,
  `permalink` mediumtext,
  `permalink_hash` varchar(191),
  `object_id` int(11) UNSIGNED,
  `object_type` varchar(32) NOT NULL,
  `object_sub_type` varchar(32),
  `author_id` int(11) UNSIGNED,
  `post_parent` int(11) UNSIGNED,
  `title` varchar(191),
  `description` text,
  `breadcrumb_title` varchar(191),
  `post_status` varchar(191),
  `is_public` tinyint(1),
  `is_protected` tinyint(1) DEFAULT '0',
  `has_public_posts` tinyint(1),
  `number_of_pages` int(11) UNSIGNED,
  `canonical` mediumtext,
  `primary_focus_keyword` varchar(191),
  `primary_focus_keyword_score` int(3),
  `readability_score` int(3),
  `is_cornerstone` tinyint(1) DEFAULT '0',
  `is_robots_noindex` tinyint(1) DEFAULT '0',
  `is_robots_nofollow` tinyint(1) DEFAULT '0',
  `is_robots_noarchive` tinyint(1) DEFAULT '0',
  `is_robots_noimageindex` tinyint(1) DEFAULT '0',
  `is_robots_nosnippet` tinyint(1) DEFAULT '0',
  `twitter_title` varchar(191),
  `twitter_image` mediumtext,
  `twitter_description` mediumtext,
  `twitter_image_id` varchar(191),
  `twitter_image_source` varchar(191),
  `open_graph_title` varchar(191),
  `open_graph_description` mediumtext,
  `open_graph_image` mediumtext,
  `open_graph_image_id` varchar(191),
  `open_graph_image_source` varchar(191),
  `open_graph_image_meta` text,
  `link_count` int(11),
  `incoming_link_count` int(11),
  `prominent_words_version` int(11) UNSIGNED,
   PRIMARY KEY (`id`))  DEFAULT CHARSET=utf8;
ERROR 1050 (42S01): Table 'zvwxy_yoast_indexable' already exists
MariaDB [wordpress]> 
MariaDB [wordpress]> drop TABLE `zvwxy_yoast_indexable`;
Query OK, 0 rows affected (0.01 sec)

MariaDB [wordpress]> 

hinterm StadtgartenTatsächlich war das Problem mit dem löschen der (alten) Tabelle behoben und es gab im DashBoard einen nächsten Hinweis:

Allgemein – Yoast SEO

NEW: Yoast SEO can now store your site’s SEO data in a smarter way!
Don't worry: this won't have to be done after each update.

Or (everything will continue to function as normal).

Nach dem Klick auf den Button gab es dann das angekündigte Update, das übrigens mehr als nur ein paar Minuten dauerte.

Yoast indexation status

We’re processing all of your content to speed it up! This may take a few minutes.

Object 50 of 46048 processed.

Nachtrag:
Something went wrong while optimizing the SEO data of your site. Please try again later.

Wenigstens begann dann aber der nächste Start des Index-Updates mit einem gerigeren Gesamt-Wert:

Yoast indexation status

We’re processing all of your content to speed it up! This may take a few minutes.

Object 4550 of 27485 processed.

Irgendwann im Laufe des Abends war das Konvertieren dann aber doch geschafft:

Good job! You’ve sped up your site.

Plugin-Yoast SEO indexation status (cool)In drei anderen Blogs musste ich das Yoast SEO – Plugin auch noch updaten und bei zweien dieser Blogs hatte ich deutlich größere Probleme es über den Fehler zu schaffen. Bei den einem Blog musste ich die Tabelle zehnmal löschen, ehe das Plugin es hin bekam, die Tabelle erfolgreich anzulegen. – Solche Sachen, die dann zufällig irgendwann durch laufen, klingen für mich ziemlich nach einer „Race Condition“, kontrolliert habe ich es aber nicht.

Noch ein Nachtrag:
Am Abend gab es noch eine neue Version vom Yoast SEO – Plugin. Als ich die eingespielt hatte, ging das Spiel mit den Datenbanken wieder von vorn los und dabei wollte der Fehler in zwei Blogs nicht so einfach verschwinden. Diesmal war es aber so, dass eine Tabelle (zvwxy_yoast_indexable) gleich ganz fehlte und eine zweite musste ich löschen und neu anlegen. Die Schemainformationen für diese beiden Tabellen bekam ich aus dem Blog, in dem das Update geklappt hatte.:

MariaDB [wordpress]> show tables;
  +---------------------------------+
  | Tables_in_wordpress             |
  +---------------------------------+
  ...
  | zvwxy_yoast_indexable_hierarchy |
  | zvwxy_yoast_migrations          |
  | zvwxy_yoast_primary_term        |
  | zvwxy_yoast_seo_links           |
  | zvwxy_yoast_seo_meta            |
  +---------------------------------+
  18 rows in set (0.00 sec)

MariaDB [wordpress]> # CREATE TABLE `zvwxy_yoast_indexable` (
 `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
 `permalink` mediumtext,
 `permalink_hash` varchar(191) DEFAULT NULL,
 `object_id` int(11) unsigned DEFAULT NULL,
 `object_type` varchar(32) NOT NULL,
 `object_sub_type` varchar(32) DEFAULT NULL,
 `author_id` int(11) unsigned DEFAULT NULL,
 `post_parent` int(11) unsigned DEFAULT NULL,
 `title` text,
 `description` text,
 `breadcrumb_title` text,
 `post_status` varchar(191) DEFAULT NULL,
 `is_public` tinyint(1) DEFAULT NULL,
 `is_protected` tinyint(1) DEFAULT '0',
 `has_public_posts` tinyint(1) DEFAULT NULL,
 `number_of_pages` int(11) unsigned DEFAULT NULL,
 `canonical` mediumtext,
 `primary_focus_keyword` varchar(191) DEFAULT NULL,
 `primary_focus_keyword_score` int(3) DEFAULT NULL,
 `readability_score` int(3) DEFAULT NULL,
 `is_cornerstone` tinyint(1) DEFAULT '0',
 `is_robots_noindex` tinyint(1) DEFAULT '0',
 `is_robots_nofollow` tinyint(1) DEFAULT '0',
 `is_robots_noarchive` tinyint(1) DEFAULT '0',
 `is_robots_noimageindex` tinyint(1) DEFAULT '0',
 `is_robots_nosnippet` tinyint(1) DEFAULT '0',
 `twitter_title` text,
 `twitter_image` mediumtext,
 `twitter_description` mediumtext,
 `twitter_image_id` varchar(191) DEFAULT NULL,
 `twitter_image_source` text,
 `open_graph_title` text,
 `open_graph_description` mediumtext,
 `open_graph_image` mediumtext,
 `open_graph_image_id` varchar(191) DEFAULT NULL,
 `open_graph_image_source` text,
 `open_graph_image_meta` text,
 `link_count` int(11) DEFAULT NULL,
 `incoming_link_count` int(11) DEFAULT NULL,
 `prominent_words_version` int(11) unsigned DEFAULT NULL,
 `created_at` datetime DEFAULT NULL,
 `updated_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
 `blog_id` bigint(20) NOT NULL DEFAULT '1',
 `language` varchar(32) DEFAULT NULL,
 `region` varchar(32) DEFAULT NULL,
 `schema_page_type` varchar(64) DEFAULT NULL,
 `schema_article_type` varchar(64) DEFAULT NULL,
 PRIMARY KEY (`id`),
 KEY `object_type_and_sub_type` (`object_type`,`object_sub_type`),
 KEY `permalink_hash` (`permalink_hash`),
 KEY `object_id_and_type` (`object_id`,`object_type`)
 ) ENGINE=InnoDB AUTO_INCREMENT=45938 DEFAULT CHARSET=utf8;
  Query OK, 0 rows affected (0.02 sec)

MariaDB [wordpress]> # #Plugin aktiviert. => Fehler existiert immer noch => Plugin deaktiviert.

MariaDB [wordpress]> # DROP TABLE zvwxy_yoast_indexable_hierarchy;

MariaDB [wordpress]> # CREATE TABLE `zvwxy_yoast_indexable_hierarchy` (
 `indexable_id` int(11) unsigned NOT NULL,
 `ancestor_id` int(11) unsigned NOT NULL,
 `depth` int(11) unsigned DEFAULT NULL,
 `blog_id` bigint(20) NOT NULL DEFAULT '1',
 PRIMARY KEY (`indexable_id`,`ancestor_id`),
 KEY `indexable_id` (`indexable_id`),
 KEY `ancestor_id` (`ancestor_id`),
 KEY `depth` (`depth`)
 ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
  Query OK, 0 rows affected (0.02 sec)

MariaDB [wordpress]> # #Plugin aktiviert. => OKAY #NEW: Yoast SEO can now store your site’s SEO data in a smarter way!

MariaDB [wordpress]> # 

About the Author

Uwe

Uwe beschäftigt sich seit vielen Jahren mit Linux und Webdesign, seit 2006 benutzt er WordPress zum schreiben eines "Tagebuchs". Tätig ist Uwe als Webmaster und Netzwerkadministrator, er arbeitet und lebt seit 2001 in Oberhausen. In seiner Freizeit ist er viel mit dem Mountainbike und dem Fotoapparat unterwegs.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.