Ansichten:

Verhalten:
Bei der Aktualisierung oder Verwendung eines DocuWare-Systems mit einer MySQL-Datenbank können Fehler wie die folgenden auftreten:

DocuWare.Common.Exceptions.DWDBException:
Unzulässige Mischung von Kollationen (utf8_general_ci,IMPLICIT) und (utf8_unicode_ci,IMPLICIT) für Operation '='


Die referenzierende Spalte 'organizationId' und die referenzierte Spalte 'guid' in der Fremdschlüssel-Beschränkung 'dwfk_XXXXXXXXXXXXXXXXXXXXXXXXX' sind nicht kompatibel.

Der Fehler tritt auf, weil die Datenbanktabellen unterschiedliche Kollationen haben
.

Lösung:
Um das Problem zu beheben, müssen Sie alle Tabellen und Datenbanken auf die korrekte unterstützte Sortierung umstellen.
Dies kann entweder manuell oder mit Hilfe der folgenden MySQL-Skripte geschehen.

*** Bevor Sie Änderungen vornehmen, stellen Sie bitte sicher, dass Sie ein Backup aller DocuWare-Datenbanken haben.
***

Schritt 1: Ändern Sie die Sortierung aller Tabellen und Datenbanken

Sie können Ihre aktuell installierte MySQL-Version überprüfen, indem Sie
SHOW VARIABLES LIKE "%version%" ausführen;

Verbinden Sie sich mit dem MySQL-Server über die MySQL Workbench oder ein ähnliches Tool und melden Sie sich als privilegierter Benutzer an.
Öffnen Sie ein neues Abfragefenster und führen Sie das Skript für Ihre MySQL-Version aus
:

MySQL 5.X (Interne Datenbank V1/V2) ConvertCollationMySQL5
MySQL 8.0.X (Interne Datenbank V3) ConvertCollationMySQL80
MySQL 8.4.X (Interne Datenbank V4) ConvertCollationMySQL84

Vergewissern Sie sich, dass Sie die Datenbank dwsystem als Standardschema ausgewählt haben.
Das Skript enthält zwei Abschnitte. Der erste Abschnitt dient dazu, eine Prozedur zu erstellen, die die Sortierung aller Tabellen in einer bestimmten Datenbank ändern kann.
Kopieren Sie den ersten Abschnitt in das Abfragefenster und führen Sie ihn aus. Überprüfen Sie anschließend, ob die gespeicherte Prozedur in der dwsystem-Datenbank vorhanden ist.

Der zweite Abschnitt, wie unten zu sehen, muss einmal pro DocuWare-Datenbank ausgeführt werden. Ersetzen Sie dazu den Datenbanknamen an den hervorgehobenen Stellen und führen Sie alle vier Anweisungen nacheinander für jede Datenbank aus.
Verwenden Sie immer den Abschnitt, der in der obigen Skriptdatei enthalten ist, da die folgenden Anweisungen nur zu Demonstrationszwecken dienen.
SET @@FOREIGN_KEY_CHECKS = 0;
ALTER DATABASE
dwsystem CHARACTER SET = utf8 COLLATE = 'utf8_general_ci';
call UpdateCharsetAndCollation('
dwsystem');
SET @@FOREIGN_KEY_CHECKS=1;


Schritt 2: Ändern Sie die Datei my.ini
*** Sichern Sie die Datei my.ini, bevor Sie fortfahren.***

Sobald das Skript für alle Datenbanken ausgeführt wurde, müssen Sie die Datei my.ini der Datenbank ändern.
(Standardspeicherort: C:\Program Files (x86)\DocuWare\Internal Database VX oder C:\Program Files\DocuWare\Internal Database VX).

Suchen Sie im Abschnitt [mysqld] nach 'character-set-server' und ersetzen Sie ihn durch die korrekte Kollation für Ihre MySQL-Version:

MySQL 5.X (Interne Datenbank V1/V2) utf8
MySQL 8.0.X (Interne Datenbank V3) utf8
MySQL 8.4.X (Interne Datenbank V4) utf8mb4


Suchen Sie nach 'collation-server' im Abschnitt [mysqld] und ersetzen Sie es durch die korrekte Kollation für Ihre MySQL-Version:

MySQL 5.X (Interne Datenbank V1/V2) utf8_allgemein_ci
MySQL 8.0.X (Interne Datenbank V3) utf8mb3_unicode_ci
MySQL 8.4.X (Interne Datenbank V4) utf8mb4_0900_ai_ci



Speichern Sie die Datei my.ini und starten Sie dann den MySQL-Server neu.
Wenn der Fehler während einer Aktualisierung aufgetreten ist, können Sie nun zum Setup zurückkehren und auf Wiederholen klicken.

KBA gilt NUR für On-Premises Organisationen.

Bitte beachten Sie: Dieser Artikel ist eine Übersetzung aus dem Englischen. Die in diesem Artikel enthaltenen Informationen basieren auf der/den englischsprachigen Originalversion(en) des Produkts. In der übersetzten Version unserer Artikel können kleinere Fehler enthalten sein, z.B. in der Grammatik. Wir können zwar nicht für die vollständige Richtigkeit der Übersetzung garantieren, aber in den meisten Fällen werden Sie sie als ausreichend informativ empfinden. Im Zweifelsfall wechseln Sie bitte zurück zur englischen Version dieses Artikels.