Upgrade zu MySQL 5.6 oder MariaDB 10.0
Ab der Version 1.7 von i-doit ändern sich die Systemvoraussetzungen für das Datenbank-Backend. Wurde in der Version 1.6 noch mindestens MySQL 5.5 oder MariaDB 5.5 vorausgesetzt, sind es ab Version 1.7 mindestens MySQL 5.6 oder MariaDB 10.0. Dies bedingt unter Umständen Änderungen an denjenigen Betriebssystemen, die von synetics unterstützt werden. Dieser Artikel beschreibt die wichtigsten Details, damit i-doit auch weiterhin vollständig funktioniert.
Um festzustellen, welche Version im Einsatz ist, kann man folgenden Befehl auf der Kommandozeile ausführen (funktioniert sowohl mit MySQL, als auch MariaDB):
1 |
|
Es existieren pro Betriebssystem teilweise mehrere Upgrade-Pfade. Wir empfehlen daher diejenigen, die aus unserer Sicht den geringsten Einfluss auf das System haben:
Betriebssystem | Version | Altes Datenbank-Backend | Neues Datenbank-Backend |
---|---|---|---|
Debian GNU/Linux | 8 | MySQL 5.5, MariaDB 10.0 | MariaDB 10.0 |
7.8 | MySQL 5.5 | MariaDB 10.0 | |
Ubuntu | 14.04 LTS | MySQL 5.5, MySQL 5.6, MariaDB 5.5 | MySQL 5.6 |
12.04 LTS | MySQL 5.5 | MariaDB 10.0 | |
Red Hat Enterprise Linux (RHEL) | 7.1 | MariaDB 5.5 | MariaDB 10.0 |
6.7 | MySQL 5.1 | MariaDB 10.0 | |
SUSE Linux Enterprise Server (SLES) | 12 | MariaDB 10.0 | MariaDB 10.0 |
Windows Server | 2008/2012 | Je nach XAMPP-Version | MariaDB 10.0 |
Es ist absolut essentiell, dass die Daten gesichert werden, bevor Änderungen am System vorgenommen werden. Da die Upgrade-Prozedur je nach Betriebssystem unterschiedlich lange andauern kann, sollten die Benutzer von i-doit vorab informiert werden.
Debian GNU/Linux 8#
Version 8 von Debian GNU/Linux enthält in den Standardpaketen MySQL 5.5 und MariaDB 10.0. Sollte MySQL installiert sein, genügt es, das Paket für MariaDB zu installieren. Dadurch wird MySQL durch MariaDB ersetzt:
1 2 |
|
Debian GNU/Linux 7.8#
Version 7.8 von Debian GNU/Linux enthält in den Standardpaketen MySQL 5.5 und kein MariaDB. Um MariaDB einzusetzen, kann das offizielle Repository von MariaDB eingebunden werden. Vorsicht: Dritt-Repositories können das System beeinträchtigen. Durch die Installation von MariaDB wird MySQL ersetzt:
1 2 3 4 5 6 |
|
Ubuntu 14.04 LTS#
Version 14.04 LTS von Ubuntu enthält in den Standardpaketen MySQL 5.5, 5.6 und MariaDB 5.5. Es wird daher empfohlen, MySQL 5.6 einzusetzen. Sollten MySQL 5.5 oder MariaDB 5.5 bisher installiert sein, werden diese durch MySQL 5.6 ersetzt:
1 2 |
|
Ubuntu 12.04 LTS#
Version 12.04 LTS von Ubuntu enthält in den Standardpaketen MySQL 5.5 und kein MariaDB. Da diese Betriebssystem-Version sehr alte Pakete für MySQL, PHP und Apache Webserver enthält, raten wir vom Einsatz generell ab und empfehlen stattdessen ein Upgrade auf Version 14.04 LTS. Wenn dies nicht möglich sein sollte, kann auf MariaDB 10.0 gewechselt werden, indem das offizielle Repository von MariaDB eingebunden wird. Vorsicht: Dritt-Repositories können das System beeinträchtigen. Durch die Installation von MariaDB wird MySQL ersetzt:
1 2 3 4 5 6 |
|
Red Hat Enterprise Linux 7.1#
Version 7.1 von Red Hat Enterprise Linux (RHEL) enthält in den Standardpaketen MariaDB 5.5 und kein MySQL. Um auf MariaDB 10.0 zu wechseln, sind laut einem Blog-Eintrag von MariaDB wenige Schritte nötig. Dadurch wird MariaDB 5.5 durch 10.0 ersetzt. Vorsicht: Dritt-Repositories können das System beeinträchtigen.
Dieser Upgrade-Pfad bezieht sich auf die 64bit-Variante des Betriebssystems.
Zuerst wird die bisherige Version deinstalliert:
1 |
|
Danach muss die Datei /etc/yum.repos.d/MariaDB.repo angelegt und editiert werden:
1 2 3 4 5 6 7 |
|
Zu guter Letzt werden die Pakete installiert, der MariaDB-Server gestartet und die Datenbanken auf den aktuellen Stand gebracht:
1 2 3 |
|
Unter Umständen werden beim anfangs erwähnten Entfernen der Pakete ebenfalls die zugehörige PHP-Extension deinstalliert. Um diese wieder zu installieren benötigen wir folgende Befehle:
1 2 |
|
Red Hat Enterprise Linux 6.7#
Version 6.7 von Red Hat Enterprise Linux (RHEL) enthält in den Standardpaketen MySQL 5.1 und kein MariaDB. Da diese Betriebssystem-Version sehr alte Pakete für MySQL, PHP und Apache Webserver enthält, raten wir vom Einsatz generell ab und empfehlen stattdessen ein Upgrade auf Version 7.1. Wenn dies nicht möglich sein sollte, kann auf MariaDB 10.0 gewechselt werden, indem das offizielle Repository von MariaDB eingebunden wird, wie in einem Blog-Beitrag von MariaDB beschrieben. Vorsicht: Dritt-Repositories können das System beeinträchtigen.
!!! "attention Dieser Upgrade-Pfad bezieht sich auf die 64bit-Variante des Betriebssystems."
Zuerst wird die bisherige Version deinstalliert:
1 |
|
Danach muss die Datei /etc/yum.repos.d/MariaDB.repo angelegt und editiert werden:
1 2 3 4 5 6 7 |
|
Zu guter Letzt wird das Paket installiert:
1 |
|
SUSE Linux Enterprise Server 12#
Version 12 von SUSE Linux Enterprise Server (SLES) enthält in den Standardpaketen bereits MariaDB 10.0, aber kein MySQL. Es ist daher kein Upgrade nötig.
Windows Server 2008/2012#
Sollte Windows Server 2008/2012 zum Einsatz kommen, empfiehlt sich der Einsatz von XAMPP. Diese von den Apache Friends bereitgestellte Distribution enthält unter anderem den Apache Webserver, PHP und MariaDB. Es sollte darauf geachtet werden, dass stets die aktuelle Version zum Einsatz kommt.
Da XAMPP weder über eine offizielle Dokumentation, noch einen Update-Mechanismus verfügt, ist der Upgrade-Pfad unter Umständen sehr kompliziert und fehleranfällig. Ein aktuelles Backup und ausführliches Testen nach dem Upgrade sind daher unabdingbar.
Sollte nicht bereits eine XAMPP-Version mit MariaDB 10.0 zum Einsatz kommen, sind folgende Schritte nötig:
- Kopieren des XAMPP-Verzeichnisses, meist unter C:\xampp\
- Aktuelle Version von XAMPP auf der offiziellen Seite herunterladen
- Bisherige XAMPP-Version deinstallieren
- XAMPP-Verzeichnis löschen
- Neue XAMPP-Version in dasselbe Verzeichnis installieren
- Verzeichnisse htdocs und mysql\data aus der Kopie des XAMPP-Verzeichnisses wiederherstellen, vorhandene Dateien dabei nicht überschreiben
- Konfigurations-Dateien anpassen, sodass sie den Systemeinstellungen genügen
- Apache Webserver und MariaDB starten
- Tests durchführen
Troubleshooting#
Headers and client library minor version mismatch
Nach dem Upgrade kann es vorkommen, dass i-doit keine Verbindung zum MySQL-/MariaDB-Server aufbauen kann. Folgende Fehlermeldung erscheint:
1 |
|
Der Grund für diesen Fehler ist in noch laufenden Apache-Prozessen zu suchen. Die PHP Bindings für MySQL/MariaDB (mysqli) sollen auf das neue Interface von MySQL/MariaDB zugreifen, aber das alte Interface befindet sich noch im Arbeitsspeicher. Abhilfe schafft ein Neustart von Apache. Beispiel unter Debian/Ubuntu:
sudo service apache2 restart