utf8mb4 auf uberspace

Es war vor gut zwei Jahren, dass mir das Thema utf8mb4 auffiel. Ein Thema, das auch meinen Hoster uberspace betrifft, denn dort kommt – CentOS 6 sei “Dank” – MySQL 5.1.73 zum Einsatz, und utf8mb4 gibt es erst ab 5.5.3. Was ich leidvoll feststellen musste, als WordPress einen Post nur bis zu einem eingefügten Emoji gespeichert hat, alles darüber hinaus war (stillschweigend!) flöten. Damals wurde ich auf CentOS 7 vertröstet, das das dann können sollte.

Am 16.2. dieses Jahres kam dann der erlösende Blogpost: uberspace unterstützt MariaDB, und zwar in der “zu MySQL 5.5 kompatiblen” Version 10.0 – trotz CentOS 6:

eine Übergangslösung, die nur für Leute gedacht ist, die zwingend hier und jetzt unbedingt MySQL 5.5 bzw. etwas dazu Kompatibles brauchen.

“Hier und jetzt”, eh, ja. In dem Zusammenhang:

Sobald unsere CentOS-7-Hosts am Start sind […]

Dazu gibt es immer noch keinen Zeitplan, Stand 8. April 2016. Aber zurück zum Thema: Das Wiki sagt

Mit dem Befehl uberspace-setup-mariadb kannst du dir eine Datenbank auf dem Host anlegen. Die Zugangsdaten werden in ~/.my.mariadb.cnf abgelegt.

, was bei mir zuerst nicht geklappt hat:

Nachdem der Support tätig wurde, war der Fehler zwar weg, aber erwähnte .my.mariadb.cnf leer. Inzwischen läuft das aber rund (Danke an den Support an dieser Stelle für die schnelle Reaktion), deshalb hier die vollständige Migration:

Et voilà: Von 💩 zu 👍 in fünf einfachen Schritten! 😊 Dasselbe jetzt noch für meinen Feedreader! 💪

UPDATE

Meh: Fever “kann” das nicht. Erstens ist utf8 dort hart im Code verdrahtet, zweitens ist bsplw. der Titel eines Eintrags ein varchar(255) – und ein Key:

255 mal 4 Byte (wie in utf8mb4) sind aber mehr als 1000 Byte, und das ist das Limit für einen Schlüssel m( Change Request bei Fever läuft.

UPDATE

Ich empfehle Super Emoji Plus+!

UPDATE

uberspace zum Thema “CentOS uberspace 7″ und Zeitplänen – für solche Ansagen mag ich die Jungs 😉

UPDATE

Beim Update auf eine neuere MariaDB-Version hat sich die Interpretation von “utf8” seitens MariaDB “geändert”, jetzt wird daraus utf8_mb3 (nicht 4!). Dadurch gehen (wieder) alle Emojis kaputt. Man muss man jede Spalte (🤯) explizit von “utf8mb3_general_ci” auf “utf8mb4_general_ci” ändern – ich empfehle so.

7 thoughts on “utf8mb4 auf uberspace

  1. Vorsicht mit Backups machen: Das mysqldump auf Uberspace 6 verwandelt all die schönen utf8mb4 Zeichen zu nutzlosen ??? Fragezeichen. Ist hier leider erst nach dem Umzug auf U7 Beta aufgefallen. Hatten zum Glück noch andere Backups.

    • Da MySQL auf U6 gar kein utf8mb4 kann (deshalb ja dieser ganze Zauber), stehen die schon kaputt in der DB, wie sollen sie dann heile exportiert werden? Oder stehe ich gerade auf dem Schlauch?

      • Wenn du mit mysqldump ein Backup von MariaDB machst. Wie es Uberspace in der eigenen Doku vorschlägt https://wiki.uberspace.de/database:mysql#mariadb_100 “””Wir erstellen zwar auch von diesem separaten Host regelmäßig Backups; auf jene hast du aber – im Gegensatz zu den normalen MySQL-Backups – nicht direkt Zugriff, sondern wir müssen dir Dumps auf Anfrage bereitstellen. Du kannst natürlich auch selbst mit mysqldump –defaults-file=~/.my.mariadb.cnf jederzeit eigene Dumps erstellen.”””

      • …und da MariaDB ja vorgeblich mit MySQL “kompatibel” ist verleitet es dazu, die auf U6 vorhandenen MySQL Userland-Tools weiter zu verwenden – machst du in deiner Anleitung ja auch so, mysql Befehl spielt auf mariadb.

        Nur daß da dann stillschweigend, ganz ohne Fehlermeldungen, dann Zeichen verschütt gehen, das hatte ich nicht auf dem Radar.

Leave a Reply

Your email address will not be published. Required fields are marked *

Ich erkläre mich damit einverstanden, dass alle eingegebenen Daten und meine IP-Adresse zum Zweck der Spamvermeidung durch das Programm Akismet in den USA überprüft und gespeichert werden. Weitere Informationen zu Akismet und Widerrufsmöglichkeiten.