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:
1 2 |
[crusy@circinus ~]$ uberspace-setup-mariadb ERROR 2003 (HY000): Can't connect to MySQL server on '127.0.0.1' (111) |
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:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
// 1. Datenbank aus MySQL exportieren: [crusy@circinus ~]$ mysqldump -u crusy -pMeinMysqlPasswort crusy_blog > blog.sql // 2. Datenbank in MariaDB anlegen: [crusy@circinus ~]$ uberspace-setup-mariadb [crusy@circinus ~]$ mysql --defaults-file=~/.my.mariadb.cnf mysql> CREATE DATABASE crusy_blog CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; mysql> exit // 3. MySQL-Dump in MariaDB importieren: [crusy@circinus ~]$ mysql --defaults-file=~/.my.mariadb.cnf crusy_blog < blog.sql // 4a. Zugangsdaten für MariaDB ansehen: [crusy@circinus ~]$ vi .my.mariadb.cnf // 4b. WordPress auf MariaDB umschalten: [crusy@circinus ~]$ vi virtual/blog.crusy.net/wp-config.php // zu ändern ist konkret: // define('DB_HOST', '127.0.0.1:3307'); // NICHT localhost:3307 // define('DB_PASSWORD', 'Passwort aus .my.mariadb.cnf'); // define('DB_CHARSET', 'utf8mb4'); // define('DB_COLLATE', 'utf8mb4_unicode_ci'); // '' scheint auch zu funktionieren // 5. dump löschen: [crusy@circinus ~]$ rm blog.sql |
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 😉