Problem nach Upgrade auf Debian13 / Mariadb 11.8.6

PHP Newsletter Software/Script und E-Mail-Marketing Software SuperWebMailer

Moderator: mirko

Antworten
Benutzeravatar
mirko
Beiträge: 23173
Registriert: 25.11.2001, 15:14
Wohnort: Leipzig
Kontaktdaten:

Re: Problem nach Upgrade auf Debian13 / Mariadb 11.8.6

Beitrag von mirko »

Nachtrag, wenn das nur eine Handvoll Tabellen sind, kann man auch manuell die Codierung der Tabellen ändern:

Code: Alles auswählen

ALTER DATABASE `bestehender_datenbank_name` 
  CHARACTER SET = utf8mb4 
  COLLATE = utf8mb4_unicode_ci;

Code: Alles auswählen

ALTER TABLE `tabellenname` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
Bei einer kompletten SuperWebMailer-Installation macht das aber keinen Sinn, sitzt man Stunden dran.
Benutzeravatar
mirko
Beiträge: 23173
Registriert: 25.11.2001, 15:14
Wohnort: Leipzig
Kontaktdaten:

Re: Problem nach Upgrade auf Debian13 / Mariadb 11.8.6

Beitrag von mirko »

Wegen der Emojis muss es ein utf8mb4 sein, sonst werden diese nicht korrekt gespeichert bzw. SuperWebMailer muss intern bei jedem HTTP POST Aufruf HTML Entities erstellen.

Man sollte eine Datenbank komplett neu erstellen, Codierung uft8mb4_unicode_ci verwenden. Kann man die Codierung nicht wählen mit Admin/Root-Rechten die Codierung ändern, BEVOR Tabellen in der neuen Datenbank erstellt werden.

Code: Alles auswählen

ALTER DATABASE `neuer_datenbank_name` 
  CHARACTER SET = utf8mb4 
  COLLATE = utf8mb4_unicode_ci;
Aus der alten Datenbank alles als SQL exportieren, per phpMyAdmin probieren, geht das nicht mit mysqldump

viewtopic.php?t=13323

Die SQL-Datei im Texteditor öffnen und die falschen Codierungen in uft8mb4_unicode_ci alle ersetzen lassen, utf8mb3_general_ci/utf8mb3_uca1400 muss raus sein.

Die SQL-Datei speichern, in die neue Datenbank per phpMyAdmin/mysql-Kommando importieren.

Im SuperWebMailer-Verzeichnis liegt die Datei config_db.inc.php, diese im Texteditor ändern.

MySQLDBName auf den neuen Datenbanknamen ändern, falls nötig Benutzername/Passwort auch noch anpassen.

Code: Alles auswählen

define('DefaultMySQLEncoding', 'utf8mb4'); 
unbedingt angeben, damit er nicht ständig HTML Entities erstellen muss.

Jetzt SuperWebMailer aufrufen und hoffen das es geht, bei Tippfehlern oder Syntaxfehlern in der config_db.inc.php geht es nicht.

Die Daten werden jetzt in die neue Datenbank geschrieben, die alte Datenbank kann man dann später löschen.
adelphi
Beiträge: 126
Registriert: 29.10.2012, 14:57

Problem nach Upgrade auf Debian13 / Mariadb 11.8.6

Beitrag von adelphi »

Hallo,
nachdem wir den Server, auf dem der Superwebmailer (9.60) betrieben wird, auf Debian 13 (mariaDB 11.8.6) aktualisiert haben, gibt es Probleme mit der "Collation" ( Illegal mix of collations (utf8mb3_general_ci,IMPLICIT) and (utf8mb3_uca1400_ai_ci,IMPLICIT) for operation '=') . Neue Tabellen (z.B. für Empfängerlisten) werden mit der Collation "utf8mb3_uca1400_ai_ci" erstellt. Vorhandene Tabellen wie z.B. admin_globalblocklist haben noch die Collation "utf8mb3_general_ci". Das führt zu SQL-Fehlern beim Versand oder bei der Ermittlung der Empfängeranzahlen. Wie ist das korrekte Vorgehen zur Behebung des Fehlers? Kann/muß bei allen Superwebmailer-Tabellen die Collation auf die "neue" Variante: utf8mb3_uca1400_ai_ci umgestellt werden?

Besten Dank.
Antworten