Seite 1 von 2

Update MySQL 5.7 auf 8.0

Verfasst: Di 9. Jun 2020, 18:36
von mikedreissig
Liebe Gemeinde,
Host Europe kündigt an, dass MySQL demnächst (16.06.2020) auf Version 8.0.19 geändert wird. Sind da Probleme bei bestehenden und neuen Installationen zu erwarten?

Grüße
mikedreissig

Re: Update MySQL 5.7 auf 8.0

Verfasst: Do 11. Jun 2020, 11:19
von xmurrix
Hallo mikedreissig,

wenn ich mir die Änderungen von MySQL 8.0 ansehe, so fällt mir auf Anhieb nichts auf, was für den Betrieb einer CONTENIDO Installation unter MySQL 8 problematisch sein kann. Ganz ausschließen lassen sich Probleme natürlich nicht, dafür müsste man das vorher testen.

Auf folgender Seite sind die Änderungen in MySQL 8 beschrieben, inkompatible Änderungen sind mit "incompatible change" gekennzeichnet:
https://dev.mysql.com/doc/refman/8.0/en ... on-changes

Was aber sein kann, dass der neue MySQL 8 Server mit vordefinierten strikten SQL-Modes daherkommt, was dann in CONTENIDO zu Problemen führen kann. Wenn nötig, sollte man das aber in der Konfiguration anpassen können. Siehe Post dazu:
viewtopic.php?f=115&t=43780#p180508

Gruß
xmurrix

Re: Update MySQL 5.7 auf 8.0

Verfasst: Do 11. Jun 2020, 15:32
von mikedreissig
Hallo xmurrix,

danke. Die von Dir vorgeschlagene Anpassung werde ich vornehmen:
viewtopic.php?f=115&t=43780#p180508
Und dann Rückmeldung geben, sobald die Umstellung durch ist.

Grüße
mikedreissig

Re: Update MySQL 5.7 auf 8.0

Verfasst: Do 18. Jun 2020, 08:39
von homtata
Also, bei HostEurope gibts unter MySQL8 tatsächlich Probleme - das Backend lässt (unter 4.9.12 zumindest, nur dort getestet) keinen Login mehr zu, man erhält immer die "Falscher Benutzername oder Passwort"-Fehlermeldung.
Die im anderen Thread genannte Lösung der Erweiterung der config.php um "SET SESSION sql_mode='NO_ENGINE_SUBSTITUTION';" lässt den Login wieder zu. Ich habe nicht getestet, wie sich diese Erweiterung auf andere Dinge (Update/Upgrade, Dauerbetrieb) auswirkt.

Re: Update MySQL 5.7 auf 8.0

Verfasst: Do 18. Jun 2020, 09:06
von xmurrix
MySQL 8.0 verwendet per default das Authentifizierungs-Plugin "caching_sha2_password" und dies ist ab PHP 7.4 mysqlnd verfügbar. Ich musste in der my.cnf folgende Änderung machen, damit es bei mir funktioniert:

Code: Alles auswählen

default_authentication_plugin=mysql_native_password
Damit läuft CONTENIDO 4.10.1 in einem Docker Container mit PHP 7.3 und MySQL 8.0 bisher ohne Probleme.

Ob CONTENIDO 4.9.12 unter MySQL 8.0 sauber funktioniert, bin ich mir nicht sicher. Vor MySQL 8 gab es den SQL-Mode "mysql40", vielleicht klappt es auch mit:

Code: Alles auswählen

SET SESSION sql_mode='';
Aber auch das müsste man genauer testen...

CONTENIDO 4.9.12 wird auch vermutlich nicht unter PHP 7.2/7.3 funktionieren, seit PHP 7.2 ist die Array-Funktion each() als deprecated markiert und sie wird noch in CONTENIDO 4.9.12 in der Session-Klasse verwendet.

Re: Update MySQL 5.7 auf 8.0

Verfasst: Do 18. Jun 2020, 11:55
von homtata
Ich habe für 4.9.12 ein Set an Patchdateien erstellt für 7.2. Müsste ich mal hier posten. Damit ist das Errorlog ziemlich clean...

Re: Update MySQL 5.7 auf 8.0

Verfasst: Sa 20. Jun 2020, 16:09
von mikedreissig
das wäre prima.
ich habe für 4.9.12 ein Set an Patchdateien erstellt für 7.2. Müsste ich mal hier posten. Damit ist das Errorlog ziemlich clean...
Host Europe hat das Update auf den 01.07 - 03.07. verschoben, wäre natürlich gut, wenn man vorher ein paar mögliche Probleme beseitigen könnte ...

Re: Update MySQL 5.7 auf 8.0

Verfasst: Mo 22. Jun 2020, 09:14
von Faar
xmurrix hat geschrieben:
Do 18. Jun 2020, 09:06

Code: Alles auswählen

SET SESSION sql_mode='';
Aber auch das müsste man genauer testen...
So wie ich das verstanden habe, sollte man nur die Modus alle setzen, die man haben will, bis auf die, die man nicht haben will.
sql_mode=""; würde bei Erfolg alle ausschalten aber auch die nützlichen.
Laut der Beschreibung hier sollte es funktionieren.
https://dev.mysql.com/doc/refman/8.0/en/sql-mode.html

Wie prüft man das nach, ob die Modes ausgeschaltet sind?

Probleme machen v'ermutlich diese Modes:
ONLY_FULL_GROUP_BY, STRICT_TRANS_TABLES, NO_ZERO_IN_DATE, NO_ZERO_DATE

Wobei: Ich hatte den Fall, dass ein (privater) Server die Änderungen des slq_mode gar nicht zu ließ.
Ds muss dann der Inhaber erst freischalten.
stimmts, Oldperl?

Re: Update MySQL 5.7 auf 8.0

Verfasst: Mo 22. Jun 2020, 09:44
von xmurrix
Faar hat geschrieben:
Mo 22. Jun 2020, 09:14
...So wie ich das verstanden habe, sollte man nur die Modus alle setzen, die man haben will, bis auf die, die man nicht haben will...
Das kann man machen, wenn man genau weiß welche SQL Modes welche Auswirkungen haben, welche SQL-Anweisungen CONTENIDO und die verwendeten Module/Plugins genau generieren.

Re: Update MySQL 5.7 auf 8.0

Verfasst: Mo 22. Jun 2020, 10:29
von Oldperl
Servus,
Faar hat geschrieben:
Mo 22. Jun 2020, 09:14
Wobei: Ich hatte den Fall, dass ein (privater) Server die Änderungen des slq_mode gar nicht zu ließ.
Ds muss dann der Inhaber erst freischalten.
stimmts, Oldperl?
Es kommt, wie immer, auf die freigegebenen Möglichkeit an, denn auch für einen MySQL-Server kann ich grundsätzliche Konfigurationen erlauben oder verbieten.

Aber generell wird hier das Pferd vom falschen Ende aufgezäumt, denn dass die Mode-Einstellungen des Datenbank-Servers in der Standard-Konfiguration von Version zu Version immer strikter werden und wurden ist schon länger bekannt, und aus diversen Gründen auch eine sinnvolle Massnahme. Also gilt es eigentlich die Anfragen den Vorgaben der DB anzupassen, nicht umgekehrt.

Gruß aus Franken

Ortwin

Re: Update MySQL 5.7 auf 8.0

Verfasst: Mo 22. Jun 2020, 12:20
von xmurrix
Oldperl hat geschrieben:
Mo 22. Jun 2020, 10:29
...Also gilt es eigentlich die Anfragen den Vorgaben der DB anzupassen, nicht umgekehrt....
Daran wird auch gearbeitet, siehe https://github.com/CONTENIDO/CONTENIDO/issues/106

Re: Update MySQL 5.7 auf 8.0

Verfasst: Di 23. Jun 2020, 09:49
von Faar
Oldperl hat geschrieben:
Mo 22. Jun 2020, 10:29
Also gilt es eigentlich die Anfragen den Vorgaben der DB anzupassen, nicht umgekehrt.
Prinzipiell ja, aber wer Contenido kennt, weiß, dass SQL-Anfragen nicht immer mit $sql= beginnen, sonst wäre es einfach, alle aufzufinden.
Zudem muss die Reparatur auch passen, bzw. müsste es im Zweifel getestet werden.
Wir haben alle Zugriff aufs Github, also los.

Re: Update MySQL 5.7 auf 8.0

Verfasst: Mi 24. Jun 2020, 16:46
von mikedreissig
Neuigkeiten von Host Europe: Es gibt einen Bug in MySQL 8.0.19, deshalb wird das Update verschoben und zunächst nur von derzeit 5.6.48 auf 5.7 aktualisiert ...

Re: Update MySQL 5.7 auf 8.0

Verfasst: Sa 4. Jul 2020, 12:04
von mikedreissig
Weitere Neuigkeiten zu Host Europe: Das Update von MySql 5.6.48 auf 5.7.30 ist durch. Ich habe es in bestehenden 4.9.12 und 4.10.0 Installationen durchgetestet und keine Probleme gefunden.

Re: Update MySQL 5.7 auf 8.0

Verfasst: Fr 7. Mai 2021, 14:20
von Faar
Hab gerade eine MySQL 8.0.24 vor die Nase gesetzt bekommen und natürlich läuft das Contenido nicht.
Allerdings habe ich root-Rechte, auf dem Server wie auf der DB und kann einstellen, was ich will.
Das Setup meldet mir als erstes den strict-mode Fehler.
Aber auch die Dateien und Verzeichnisse lassen sich nicht beschreiben weil sie alle den User root gehören. :?

Sollte ich soweit kommen, dass ich mal den strict-mode angepasst habe, schreibe ich hier über den Erfolg. :|