1
Der sicherste Weg einer Umstellung von utf8mb3 auf utf8mb4 ist es, diese in einer neuen Datenbank vorzunehmen. Falls irgendetwas schief läuft, kann dann zurück zur alten Datenbank gewechselt werden
1. eine neue Datenbank wird angelegt mit dem Charset 'utf8mb4'
2. die alte Datenbank wird exportiert (z. B. in phpMyAdmin oder der Datenbankadministrationssoftware, die der Webhoster zur Verfügung stellt)
3. der exportierte Datenbank-Dump wird wie folgt bearbeitet, am besten mit der "Suchen + Ersetzen" Funktion eines Editors
Diese beiden Strings müssen in dem Dump gesucht werden ...:
... und dann alle Funde entweder gelöscht oder durch die entsprechenden utf8mb4 Varianten ersetzt werden:
4. der bearbeitete Dump wird in die neue Datenbank importiert.
5. von der Datei includes/config.php wird ein Backup angelegt. Danach wird in der Originaldatei die Variable $dbdatabase auf die neue Datenbank geändert (ggf. werden auch $dbhost, $dbuser und $dbpassword entsprechend angepasst). Zusätzlich wird folgende Zeile hinzugefügt:
6. das Forum wird gründlich getestet, auch durch Einfügen von Emojis
7. falls Fehler auftreten, kann wieder zur alten Datenbank gewechselt werden, indem die Backup-Datei von config.php zurückgespielt wird.
8. wenn sicher ist, dass alles wie gewünscht funktioniert, kann die alte Datenbank gelöscht werden
---
Wer keine neue Datenbank anlegen kann und die Umstellung in der Datenbank direkt vornehmen möchte, sollte unbedingt ein Backup des unbearbeiteten Datenbank-Dumps anlegen, welches im Fall des Falles zurückgespielt werden kann.
1. eine neue Datenbank wird angelegt mit dem Charset 'utf8mb4'
2. die alte Datenbank wird exportiert (z. B. in phpMyAdmin oder der Datenbankadministrationssoftware, die der Webhoster zur Verfügung stellt)
3. der exportierte Datenbank-Dump wird wie folgt bearbeitet, am besten mit der "Suchen + Ersetzen" Funktion eines Editors
Diese beiden Strings müssen in dem Dump gesucht werden ...:
CHARSET=utf8mb3
COLLATE=utf8mb3_general_ci
... und dann alle Funde entweder gelöscht oder durch die entsprechenden utf8mb4 Varianten ersetzt werden:
CHARSET=utf8mb4
COLLATE=utf8mb4_general_ci
4. der bearbeitete Dump wird in die neue Datenbank importiert.
5. von der Datei includes/config.php wird ein Backup angelegt. Danach wird in der Originaldatei die Variable $dbdatabase auf die neue Datenbank geändert (ggf. werden auch $dbhost, $dbuser und $dbpassword entsprechend angepasst). Zusätzlich wird folgende Zeile hinzugefügt:
$dbcharset = 'utf8mb4';
6. das Forum wird gründlich getestet, auch durch Einfügen von Emojis
7. falls Fehler auftreten, kann wieder zur alten Datenbank gewechselt werden, indem die Backup-Datei von config.php zurückgespielt wird.
8. wenn sicher ist, dass alles wie gewünscht funktioniert, kann die alte Datenbank gelöscht werden
---
Wer keine neue Datenbank anlegen kann und die Umstellung in der Datenbank direkt vornehmen möchte, sollte unbedingt ein Backup des unbearbeiteten Datenbank-Dumps anlegen, welches im Fall des Falles zurückgespielt werden kann.