WBCE CMS Forum

WBCE CMS – Way Better Content Editing.

Du bist nicht angemeldet.

#1 11.09.2020 14:42:33

viktor321j
Mitglied

Unbekannte Sortierreihenfolge: 'utf8mb4_0900_ai_ci'

Beim Upload der Datenbank einer lokalen Site, die einige NWI-Seiten hat, auf den Provider-Server erhalte ich die Fehlermeldung "Unbekannte Sortierreihenfolge: 'utf8mb4_0900_ai_ci'". Ich habe daraufhin in den betroffenen NWI-Tabellen das Feld Kollation auf utf_unicode_ci geändert.

Bei einer anderen Site hatte dies zum Erfolg geführt, aktuell ist dies leider nicht so. Denn in den Export-Tabellen finde ich immer noch dennoch etwas wie dies, und der Provider-Server weist die Tabellen immer wieder zurück:

CREATE TABLE `xyz_mod_news_img_tags` (
  `tag_id` int NOT NULL,
  `tag` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,
  `tag_color` varchar(7) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

Gibt es da etwas, das weiterhilft?

Beitrag geändert von viktor321j (30.09.2020 12:02:46)

Offline

#2 11.09.2020 15:28:46

bernd
Developer

Re: Unbekannte Sortierreihenfolge: 'utf8mb4_0900_ai_ci'

Das ist anscheinend die Krux, wenn man lokal bereits MysQL8 hat und beim Provider noch MySQL5.6 läuft und man beim Anlegen der lokalen Datenbank nicht aufpasst.
Bin ich kürzlich auch drüber gestolpert, hab es aber aus Zeitmangel noch nicht weiterverfolgt.

Es reicht nicht wenn du die Kollation der betroffenen Tabelle ändert, du musst auch die Kollation jedes betroffenen Feldes in der Tabelle ändern. Dann sollte es eigentlich klappen.


... nein in Europa verwenden wir beim Programmieren nicht € statt $ ...

Offline

#3 11.09.2020 15:56:42

viktor321j
Mitglied

Re: Unbekannte Sortierreihenfolge: 'utf8mb4_0900_ai_ci'

Das gibt zumindest einen Hinweis, in welcher Richtung das Problem zu verorten ist, dafür danke.
Dass ich neuerdings beim Anlegen der Datenbank für WBCE lokal mehr "aufpassen" muss als in der Zeit vor NWI, war mir nicht bewusst. Die einzigen Tabellen mit dieser Kollation gehören ja zu NWI. Die lokale Installation lief glatt, ebenso wie alles Weitere lokal glatt lief.
Vielleicht kann man ja nochmal überlegen, ob es nötig ist, in den betreffenden NWI-Tabellen diese Kollation zu verwenden?

Offline

#4 11.09.2020 15:59:43

webbird
Administrator

Re: Unbekannte Sortierreihenfolge: 'utf8mb4_0900_ai_ci'

Die Kollation WIRD von NWI nicht verwendet. Siehe install.php.

CREATE TABLE IF NOT EXISTS `%smod_news_img_tags` (
          `tag_id` int(11) NOT NULL AUTO_INCREMENT,
          `tag` varchar(255) NOT NULL,
          `tag_color` VARCHAR(7) NULL DEFAULT NULL,
          PRIMARY KEY (`tag_id`)
        ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

Ich habe eine Amazon-Wishlist. wink Oder spende an das Projekt.
Ich kann, wenn ich will, aber wer will, dass ich muss, kann mich mal

Offline

#5 11.09.2020 16:01:59

webbird
Administrator

Re: Unbekannte Sortierreihenfolge: 'utf8mb4_0900_ai_ci'

utf8mb4 has become the default character set, with utf8mb4_0900_ai_ci as the default collation in MySQL 8.0.1 and later. Previously, utf8mb4_general_ci was the default collation. Because the utf8mb4_0900_ai_ci collation is now the default, new tables have the ability to store characters outside the Basic Multilingual Plane by default. Emojis can now be stored by default. If accent sensitivity and case sensitivity are required, you may use utf8mb4_0900_as_cs instead.

Quelle: https://www.monolune.com/what-is-the-ut … collation/

Scheint als würde mySQL das intern wandeln.


Ich habe eine Amazon-Wishlist. wink Oder spende an das Projekt.
Ich kann, wenn ich will, aber wer will, dass ich muss, kann mich mal

Offline

#6 11.09.2020 16:21:58

bernd
Developer

Re: Unbekannte Sortierreihenfolge: 'utf8mb4_0900_ai_ci'

Das scheint eine Art "Vererbung" zu sein.

Unter MySQL8 wird die Datenbank, wenn man keine Kollation explizit angibt mit utf8mb4_0900_ai_ci angelegt.
Danach "erbt" dann jede Tabelle - wenn sie keine andere Kollation angibt - diese und legt auch die Felder - die eine Kollation benötigen - mit dieser Kollation an.

Also am Anfang bei Anlegen der Datenbank schon aufpassen, dann müßte alles "fein" sein.

Ist also IMHO eher ein generelles MysQL8 vs. MySQL5.6 Problemchen als direkt ein WBCE- oder NWI-Problem.

Beitrag geändert von bernd (11.09.2020 16:22:37)


... nein in Europa verwenden wir beim Programmieren nicht € statt $ ...

Offline

#7 11.09.2020 16:39:47

viktor321j
Mitglied

Re: Unbekannte Sortierreihenfolge: 'utf8mb4_0900_ai_ci'

@webbird: In diese Richtung hatte ich auch schon spekuliert, denn nachdem ich sie abgeändert hatte, war die Kollation ohne mein Zutun in dem DUMP wieder da, den ich auf den Provider-Server hochladen wollte.
Ich bin ja eher ahnungslos, was die technischen Feinheiten angeht, und suche nur nach einer Lösung, denn das ist gerade weniger schön: Alles ist fertig und lokal bestens, nur der Upload zum Provider (IONOS, MySQL 5.5) scheitert.
Wäre es denn möglich und unkritisch, dass ich die Definitionen der betroffenen Tabellen abändere in DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci oder wären dann Seiteneffekte zu erwarten, die ich nicht absehen kann?
Dann könnte ich NWI anschließend entfernen und wieder neu installieren ...
Diese seltsame Umwandlung findet NUR bei den drei NWI-Tabellen _mod_news_img_tags  sowie _mod_news_img_tags_posts und _mod_news_img_tags_sections statt ...

@Bernd: Der MySQL-Server ist 8.0.2.1, aber die Datenbank existiert schon lange und wurde mit MySQL 5.sonstwas angelegt und hat schon zahlreiche WB- bzw. WBCE-Installationen beherbergt. Kollation, seinerzeit explizit angegeben, ist UTF8_general_ci.

Offline

#8 11.09.2020 17:16:17

viktor321j
Mitglied

Re: Unbekannte Sortierreihenfolge: 'utf8mb4_0900_ai_ci'

Fürs Erste ist das Problem gelöst. Eure Hinweise haben mir gezeigt, in welche Richtung ich gehen muss, um eine Lösung zu finden.

UTF8_general_ci Ist die Kollation der Lokal-Installation gewesen, auf dem Provider-Server gab es sogar noch latin1_german2_ci. Ich habe alles entsprechend umgestellt (es genügt für meine Zwecke so) - und siehe da: Der Upload lief. Danke.

Offline

#9 11.09.2020 19:02:53

bernd
Developer

Re: Unbekannte Sortierreihenfolge: 'utf8mb4_0900_ai_ci'

Auch wenn's für's erste gelöst ist hab ich trotzdem mal 3 Tests gemacht um hinter die Diskrepanzen zwischen meiner Vermutung und viktors Tatsachen zu kommen:

DB1 angelegt ohne Angabe einer Kollation.
MySQL8 setzt dann für die DB automatisch utf8mb4_0900_ai_ci
Die Core-Tabellen sowie die Modul-Tabellen die im Installer eine Kollation (utf8_unicode_ci) angeben werden mit dieser angelegt.
Alle anderen Tabellen (nwi, opf-dashboard, sitemap, wb-stats) die im Installer keine Kollation angeben werden mit utf8mb4_0900_ai_ci angelegt.

DB2 angelegt mit Kollation utf8mb4_unicode_ci.
MySQL8 übernimmt die Kollation.
Die Core-Tabellen sowie die Modul-Tabellen die im Installer eine Kollation (utf8_unicode_ci) angeben werden mit dieser angelegt.
Alle anderen Tabellen (nwi, opf-dashboard, sitemap, wb-stats) die keine im Installer Kollation angeben werden mit utf8mb4_unicode_ci angelegt, ausser: wbce_mod_news_img_tags, wbce_mod_news_img_tags_posts, wbce_mod_news_img_tags_sections - die werden wieder mit utf8mb4_0900_ai_ci angelegt.

DB3 angelegt mit Kollation utf8_unicode_ci.
MySQL8 übernimmt die Kollation.
Die Core-Tabellen und alle Modul-Tabellen - ob mit oder ohne Kollation im Installer - werden mit utf8_unicode_ci angelegt, wiederrum ausser: wbce_mod_news_img_tags, wbce_mod_news_img_tags_posts, wbce_mod_news_img_tags_sections - die werden mit utf8mb4_0900_ai_ci angelegt.

Soweit ich das überblicke, sind die 3 NWI-Tabellen die da aus der Reihe tanzen genau die, die im Installer
ENGINE=InnoDB DEFAULT CHARSET=utf8mb4
angeben!

Ich muss da wohl meine Ausage von oben, das das kein NWI-Problem sei leicht revidieren ;-)

Beitrag geändert von bernd (11.09.2020 19:04:18)


... nein in Europa verwenden wir beim Programmieren nicht € statt $ ...

Offline

Liked by:

viktor321j

#10 12.09.2020 05:44:57

florian
Administrator

Re: Unbekannte Sortierreihenfolge: 'utf8mb4_0900_ai_ci'

Haben in DB3 die anderen (also Nicht-NWI-)Tabellen den Typ InnoDB oder MyISAM?


Code allein macht nicht glücklich. Jetzt spenden!

Offline

#11 12.09.2020 14:45:11

bernd
Developer

Re: Unbekannte Sortierreihenfolge: 'utf8mb4_0900_ai_ci'

Die Core-Tabellen haben InnoDB die übrigen Module gemischt.
Hab mal 3 Screenshots angehängt ...


... nein in Europa verwenden wir beim Programmieren nicht € statt $ ...

Offline

#12 14.09.2020 09:00:44

webbird
Administrator

Re: Unbekannte Sortierreihenfolge: 'utf8mb4_0900_ai_ci'

Kann ja dann nur an der Kollation am Character Set utf8mb4  liegen. Leider habe ich bisher keine Doku zu mySQL 8 gefunden, die diese implizite Änderung erklären würde.

Was passiert denn, wenn man utf8_unicode_ci verwendet?

https://www.pixelfriese.de/unterschied- … nicode_ci/

Beitrag geändert von webbird (14.09.2020 09:24:10)


Ich habe eine Amazon-Wishlist. wink Oder spende an das Projekt.
Ich kann, wenn ich will, aber wer will, dass ich muss, kann mich mal

Offline

#13 14.09.2020 09:20:35

webbird
Administrator

Re: Unbekannte Sortierreihenfolge: 'utf8mb4_0900_ai_ci'

Also ich vermute mal es hängt hiermit zusammen:

Character set support.  The default character set has changed from latin1 to utf8mb4. The utf8mb4 character set has several new collations, including utf8mb4_ja_0900_as_cs, the first Japanese language-specific collation available for Unicode in MySQL. For more information, see Section 10.10.1, “Unicode Character Sets”.

utf8mb4 ist nicht die Kollation, sondern sozusagen die Basis. mySQL 8 sucht sich da offenbar eine Kollation zu aus, die es für die richtige hält.

Von mir aus können wir die Angabe des default charset aus der install.php entfernen, in der Hoffnung, dass mySQL das dann schon richtig machen wird...


Ich habe eine Amazon-Wishlist. wink Oder spende an das Projekt.
Ich kann, wenn ich will, aber wer will, dass ich muss, kann mich mal

Offline

#14 14.09.2020 09:23:09

webbird
Administrator

Re: Unbekannte Sortierreihenfolge: 'utf8mb4_0900_ai_ci'

...wobei ja, wenn ich das recht verstanden habe, das Problem eigentlich keins ist. Es scheint ja nur dann aufzutreten, wenn man eine "Test-installation" mit mySQL 8 hat, von dort exportiert und den Kram dann in mysql 5.x importiert, weil dort die Kollationen nicht bekannt sind. Dass es dabei knirscht, hätte ich ohnehin erwartet - dass es jetzt gerade 3 Tabellen von NWI betrifft, naja.


Ich habe eine Amazon-Wishlist. wink Oder spende an das Projekt.
Ich kann, wenn ich will, aber wer will, dass ich muss, kann mich mal

Offline

#15 14.09.2020 12:01:25

bernd
Developer

Re: Unbekannte Sortierreihenfolge: 'utf8mb4_0900_ai_ci'

@Webbird:
richtig, das Problem tritt "nur" dann auf wenn man von einen MySQL8 Export in 5.x importiert.

Das kann man relativ einfach umgehen in dem man in MySQL8 bereits beim Anlegen der DB  eine 5.x taugliche Kollation wählt.
Dann werden Tabellen die im Installer keine Kollation angeben mit der Kollation der DB angelegt - Tabellen die im Installer eine Kollation angeben sind ohnehin fein raus - ausser den 3 Tabellen  mit dem "DEFAULT" dann wird nämlich nicht die Kollation der DB verwendet sondern die Standardkollation von MySQL8.

Wenn du die 3 Screenshots im Anhang an #11 vergleichst siehst du eigentlich recht deutlich den Knackpunkt (unten bei "insgesamt" steht immer die Kollation mit der die DB angelegt wurde).

Da diese Konstallation (lokal 8 - live 5.x) künftig wohl öfter auftauchen wird sollten wir vielleicht unnötige Stolperfallen aus dem Weg räumen. Wir könntent wohl im Installer eine 5.x genehme Kollation für die DB erzwingen, das hilft aber dann auch nicht, wenn es durch die default Kollation (siehe auch deinen Komentar in #5) bei einzelnen Tabellen wieder ausgehebelt wird.


... nein in Europa verwenden wir beim Programmieren nicht € statt $ ...

Offline

Liked by:

viktor321j

#16 15.09.2020 08:47:18

webbird
Administrator

Re: Unbekannte Sortierreihenfolge: 'utf8mb4_0900_ai_ci'

Ich hab's im Repo geändert und überall den "default charset" rausgenommen. Ob das in bestimmten Umgebungen dann wieder andere Probleme mit sich bringt, kann ich nicht beurteilen.


Ich habe eine Amazon-Wishlist. wink Oder spende an das Projekt.
Ich kann, wenn ich will, aber wer will, dass ich muss, kann mich mal

Offline

Liked by:

viktor321j

#17 16.09.2020 14:17:20

viktor321j
Mitglied

Re: Unbekannte Sortierreihenfolge: 'utf8mb4_0900_ai_ci'

Gut, dass das dabei rausgekommen ist - und danke überhaupt für Eure tolle Arbeit an diesem Super-CMS (bzw. den Modulen)!

Offline

#18 30.09.2020 12:02:32

viktor321j
Mitglied

Re: Unbekannte Sortierreihenfolge: 'utf8mb4_0900_ai_ci'

Entgegen den letzten Überlegungen, die auf dieser Seite hier zu finden sind, erhalten NWI-Tabellen nun in WBCE 1.4.5 doch wieder die Kollation utf8mb4_0900_ai_ci. Ist das jetzt wieder gewollt oder ein Versehen?

Beitrag geändert von viktor321j (30.09.2020 12:07:37)

Offline

#19 30.09.2020 12:11:04

florian
Administrator

Re: Unbekannte Sortierreihenfolge: 'utf8mb4_0900_ai_ci'

Das ist beabsichtigt. Die Anpassung der NWI-Datenbankfelder ist ein komplexeres Unterfangen, das konnte in der 1.4.5 leider nicht mehr umgesetzt werden und kommt dann in einer nächsten WBCE- bzw. NWI-Version.


Code allein macht nicht glücklich. Jetzt spenden!

Offline

#20 30.09.2020 12:19:26

viktor321j
Mitglied

Re: Unbekannte Sortierreihenfolge: 'utf8mb4_0900_ai_ci'

Danke für die Info. Dann werde ich es weiter in den DBs meiner Sites manuell (bzw. per phpMyAdmin) anpassen, hat ja problemlos funktioniert und bisher noch keine Nachteile offenbart.

Offline

Fußzeile des Forums

up