Wenn du MySQL von Oracle unter Debian 12 „Bookworm“ einsetzt und deine Server-Installation womöglich schon ein paar Tage älter ist, dann solltest du etwas Handarbeit investieren.
Das Problem
Das Problem ist, dass du wahrscheinlich noch MySQL 8.0 verwendest. Aktuell (Ende Januar 2025) ist das noch kein Problem per se, aber Ende April wird Oracle die Unterstützung für MySQL 8.0 einstellen. Ein Jahr später endet dann auch die Unterstützung des Extended Supports – und spätestens dann solltest du ein Update fahren.
Der normale Weg der Installation von Oracle MySQL läuft über das Paket „mysql-apt-config“, das du bei Oracle herunterladen kannst. Auf meinen Servern war jedoch Version 0.8.29-1 installiert und wurde aus mir unbekannten Gründen nicht aktualisiert. Der Aufruf von dpkg-reconfigure mysql-apt-config
öffnete zwar das Menü für die Versionsauswahl, doch ist dort MySQL 8.0 die einzige Version, die man unter Debian 12 Bookworm auswählen kann.
MySQL unter Debian Bookworm aktualisieren
Die Lösung ist zum Glück relativ einfach. Du musst lediglich eine neue Version des Config-Tools herunterladen und dieses installieren. Das geht mit ein paar wenigen Befehlen in einer root
-Shell – alternativ kannst du auch mit sudo
arbeiten, wenn dies eingerichtet ist.
Du benötigst den Download-Link für das Vorgehen. Diesen erhältst du, wenn du auf der Webseite auf „Download“ klickst. Es öffnet sich eine weitere Seite, die nach einem Oracle-Login bittet. Unter der Box befindet sich aber der Link, den wir suchen. Er ist mit „No thanks, just start my download“ beschriftet. Davon kopierst du das Linkziel. Momentan sieht die URL so aus: https://dev.mysql.com/get/mysql-apt-config_0.8.33-1_all.deb
Nun loggst du dich auf deinen Server ein und lädst das .deb-Paket herunter:
# wget https://dev.mysql.com/get/mysql-apt-config_0.8.33-1_all.deb
… und installierst das Paket:
# dpkg -i mysql<tab>
Die <tab>-Taste sollte den Rest des Dateinamens ergänzen. Nach der Installation sollte sich dpkg-reconfigure
öffnen. Hier kannst du die zu installierende Version auswählen, also beispielsweise mysql-8.4-lts
. Das Ganze bestätigst du mit dem <OK>
-Button so lange, bis zu zurück auf deiner Shell bist.
Nun führst du ein normales Upgrade des Servers aus. Dabei sollten die verschiedene MySQL-Pakete als Teil der zu aktualisierenden Pakete aufgelistet werden:
# apt-get update && apt-get dist-upgrade
Nach einer kurzen Wartezeit sollte das Update durchgelaufen sein. Gängige Software-Pakete wie WordPress, XenForo, froxlor und diverse Eigenentwicklungen scheinen dem ersten Vernehmen nach problemlos zu laufen.
Die Long-Term-Support-Version (LTS) 8.4 plant Oracle übrigens bis Ende April 2029 mit regulären Updates und bis Ende April 2032 im Rahmen des „Extended Supports“ mit Updates zu versorgen.
Die praktische Box für Copy-Paste
Hasst du es auch so sehr wie ich, wenn mehrere Befehle in verschiedenen Boxen stehen und man jeden einzeln kopieren muss? Deshalb gibt es hier alle Befehle in einer praktischen Box für dich zum Einfügen in dein Terminal. Achtung: Ich verwende den heute (30.01.2025) aktuellen Link zum .deb-Paket. Wenn du das in der Zukunft liest, solltest du die URL anpassen!
Der folgende Block setzt voraus, dass du bereits über root
-Rechte verfügst. Wenn nicht, dann solltest du vorher root
werden mit sudo -s
.
wget "https://dev.mysql.com/get/mysql-apt-config_0.8.33-1_all.deb";
dpkg -i mysql-apt-config_0.8.33-1_all.deb;
apt-get update && apt-get dist-upgrade;
Was ist neu in MySQL 8.4?
Die gute Nachricht ist, dass sich in Version 8.4 gegenüber 8.0 für Otto-Normal-Admin nicht allzu viel geändert hat. Hier und da haben ein paar Variablen neue Standardwerte bekommen, aber das scheint eher harmlos zu sein, oder du hast sie ohnehin mit eigenen Werten überschrieben. Das meiste scheint sich im Großraum Replication geändert zu haben – und wenn du das nicht verwendest, ist es komplett belanglos für dich.
Allerdings gibt es zwei Änderungen, die womöglich deine Aufmerksamkeit bedürfen. Einmal ist die Speicherung von Passwörtern jetzt eine andere. Das Plugin mysql_native_password
ist jetzt optional. Wenn du noch die alte (oder mit MariaDB kompatible) Methode des Passwort-Hashings verwendest, musst du das entweder explizit in deiner Konfiguration aktivieren oder das Passwort erneut setzen und diesmal einfach das Standard-Verfahren wählen.
Die zweite Änderung ist, dass Wildcards in Database Grants jetzt deprecated sind. Das ist schon in Version 8.2 passiert, aber so mutig sind wir hier nicht. Es ist also zu erwarten, dass die Platzhalter %
und _
spätestens in 9.x als normale Zeichen ohne spezielle Bedeutung behandelt werden. Wenn du dich darauf verlässt, solltest du deinen Code anpassen.