Dies ist das technische Support-Forum für WPML - das mehrsprachige WordPress-Plugin.

Mitlesen können alle, doch nur WPML-Kunden können hier Fragen veröffentlichen. Das WPML-Team beantwortet Anfragen im Forum an 6 Tagen pro Woche, 22 Stunden am Tag.

This thread is resolved. Here is a description of the problem and solution.

Problem:
Beim Aktivieren von WPML bekomme ich folgende Meldung: COLLATION 'utf8_general_ci' is not valid for CHARACTER SET 'utf8mb4' in /var/home/*****.com/wwwsd/wp-content/plugins/sitepress-multilingual-cms/inc/setup/sitepress-schema.php on line 359

Solution:
Wie in der Fehlermeldung verdeutlicht liegt hier ein Problem mit der Datenbankkonfiguration vor. Wenn WPML aktiviert wird, kann in der Datenbank die **_icl_translations Tabelle nicht angelegt werden.

#1 In der wp-config.php war folgenden Code aktiv:

define( 'DB_CHARSET', 'utf8mb4' );

-> wenn ich dies auf "utf8" änderte, wie WordPress es empfiehlt, wird diese Änderung nicht übernommen.
Doku:

#2 Ebenso ist auch

define('DB_COLLATE', '');

aktiv. Dies bedeutet es soll der Default Wert der SQL Datenbank verwendet werden. Dies war lt. Abfrage utf8 | utf8_general_ci.

WPML kann somit nicht aktiviert werden, da verschiedene Collations aktiv sind. Wenn ich diesen Wert manuell ändere passiert nichts. Da wir hier direkt auf der Datenbankebene Änderungen durchführen müssen, empfehle ich Ihnen Ihren Hosting Anbieter dafür zu kontaktieren.

Relevant Documentation:
https://wordpress.org/support/article/editing-wp-config-php/#database-character-set

This topic contains 8 Antworten, has 2 Teilnehmer.

Last updated by ulrichH-4 vor 3 Monate, 1 Woche.

Assigned support staff: Marcel.

Autor Beiträge
August 3, 2019 um 8:12 am #4334215

ulrichH-4

Ich versuche:

URL der/meiner Website, auf der das Problem auftritt: hidden link

Erwartet hatte ich zu sehen:

Stattdessen bekam ich:
COLLATION 'utf8_general_ci' is not valid for CHARACTER SET 'utf8mb4' in /var/home/*****.com/wwwsd/wp-content/plugins/sitepress-multilingual-cms/inc/setup/sitepress-schema.php on line 359

I could not activate the plugin...

August 5, 2019 um 7:10 am #4338391

Marcel
Supporter

Languages: Englisch (English ) Deutsch (Deutsch )

Timezone: Europe/Madrid (GMT+01:00)

Hallo Ulrich,

Vielen Dank, dass Sie den WPML Support kontaktiert haben.

Sie können das Problem mit folgender Beschreibung lösen:
https://wpml.org/forums/topic/illegal-mix-of-collation/#post-3561253

Wenn es danach nicht funktioniert, beachten Sie in diesem Link bitte die Funktion von phpMyAdmin für "Change all column collations".

Freundliche Grüße
Marcel

August 5, 2019 um 10:26 am #4339815

ulrichH-4

vielen Dank, aber leider finde ich die in dem verlinkten Posting erwähnten Tabellen icl_strings, icl_pages, icl_urls nicht - was kann ich tun?

August 5, 2019 um 10:35 am #4339839

Marcel
Supporter

Languages: Englisch (English ) Deutsch (Deutsch )

Timezone: Europe/Madrid (GMT+01:00)

Beachten Sie bitte, dass bei den Tabellen zuvor Ihr Tabellenpräfix vor _icl_strings angezeigt wird. z.B.: test_icl_strings oder wp_icl_strings.
https://wpml.org/documentation/support/wpml-tables/

August 5, 2019 um 10:43 am #4339917

ulrichH-4

Hallo nochmal, sehr nett, aber das war mir klar, es gibt diese Tabellen leider nicht, auch nicht mit irgendeinem Präfix. Kann das ganze an meiner MySQL-Version (8) liegen?

August 5, 2019 um 10:49 am #4339929

Marcel
Supporter

Languages: Englisch (English ) Deutsch (Deutsch )

Timezone: Europe/Madrid (GMT+01:00)

Wenn die Tabellen nicht vorhanden sind, ging etwas bei der WPML Installation schief.

#1 Überprüfen Sie am besten Ihr PHP Log auf Datenbankfehler (wie z.B: kein Speicher, keine Berechtigung zur Tabellen Anlage, ..)
#2 Führen Sie einen WPML Reset aus https://wpml.org/faq/how-wpml-reset-works/
#3 Löschen Sie WPML als Plugin und installieren Sie es bitte erneut unter WPML -> All Pages

Dies wird Ihr Problem beheben.

Freundliche Grüße
Marcel

August 7, 2019 um 7:43 am #4352523

Marcel
Supporter

Languages: Englisch (English ) Deutsch (Deutsch )

Timezone: Europe/Madrid (GMT+01:00)

Ich würde mir das gerne direkt auf Ihrer Seite ansehen. Dazu bräuchte ich bitte temporären Zugriff (WP-Admin und FTP, Datenbanktool wie phpMyAdmin) auf Ihre Seite, vorzugsweise zu einer Test/Staging Seite, an der das Problem nach Möglichkeit repliziert wurde.

Ihre nächste Antwort ist als „Privat“ markiert, dies bedeutet nur Sie und ich haben Zugriff darauf.

❌ Bitte sichern Sie Ihre Datenbank und Website davor ❌

✙ Ich würde außerdem Ihre Erlaubnis benötigen, um Plugins und das Theme zu deaktivieren und erneut zu aktivieren sowie Konfigurationen auf der Seite zu ändern. Dies ist auch der Grund, warum das Backup wirklich wichtig ist.

Freundliche Grüße
Marcel

August 8, 2019 um 2:42 pm #4364011

Marcel
Supporter

Languages: Englisch (English ) Deutsch (Deutsch )

Timezone: Europe/Madrid (GMT+01:00)

Hallo Ullrich,

vielen Dank für die Zugänge. Wie in der Fehlermeldung verdeutlicht liegt hier ein Problem mit der Datenbankkonfiguration vor.

Wenn WPML aktiviert wird, kann in der Datenbank die **_icl_translations Tabelle nicht angelegt werden.

#1 Sie haben in Ihrer wp-config.php folgenden Code aktiv:
define( 'DB_CHARSET', 'utf8mb4' ); -> wenn ich dies auf "utf8" änderte, wie WordPress es empfiehlt, wird diese Änderung nicht übernommen.
Doku: https://wordpress.org/support/article/editing-wp-config-php/#database-character-set

#2 Ebenso ist auch define('DB_COLLATE', ''); aktiv. Dies bedeutet es soll der Defaultwert der SQL Datenbank verwendet werden. Dies ist bei Ihnen lt. Abfrage utf8 | utf8_general_ci.

WPML kann somit nicht aktiviert werden, da verschiedene Collations aktiv sind. Wenn ich diesen Wert manuell ändere passiert nichts. Da wir hier direkt auf der Datenbankebene Änderungen durchführen müssen, empfehle ich Ihnen Ihren Hosting Anbieter dafür zu kontaktieren.

Folgendes Query versucht WPML bei der Aktivierung auszuführen:

CREATE TABLE IF NOT EXISTS `wp_icl_translations` ( `translation_id` BIGINT NOT NULL AUTO_INCREMENT PRIMARY KEY , `element_type` VARCHAR( 60 ) NOT NULL DEFAULT 'post_post', `element_id` BIGINT NULL DEFAULT NULL , `trid` BIGINT NOT NULL , `language_code` VARCHAR( 7 ) NOT NULL, `source_language_code` VARCHAR( 7 ), UNIQUE KEY `el_type_id` (`element_type`,`element_id`), UNIQUE KEY `trid_lang` (`trid`,`language_code`), KEY `trid` (`trid`), KEY `id_type_language` (`element_id`, `element_type`, `language_code`) ) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8_general_ci
-> Dann schreibt die Datenbank "Error: "#1253 - COLLATION 'utf8_general_ci' is not valid for CHARACTER SET 'utf8mb4'" "

Freundliche Grüße
Marcel

August 11, 2019 um 4:26 pm #4377127

ulrichH-4

My issue is resolved now. Thank you!