Mai 1

Upgrade MySQL 5.5 auf MariaDB & Probleme mit libmysqlclient18 (Ubuntu)

Nachdem man viel Gutes über MariaDB gehört hat,
wollte ich dem MySQL-Fork mal eine Chance geben.

Nachdem ich mir die paar Schritte auf der MariaDB-Seite angeschaut hatte,
war ich zuversichtlich, dass das ohne Schmerzen ablaufen sollte.
Tat es aber leider nicht, dank einiger Verwurstung der Package Dependencies
(ob das jetzt Oracles Versagen war oder wessen auch immer soll an dieser
Stelle keine Rolle spielen) stand ich auf einmal komplett ohne Datenbanken da.
Das fanden neben Gameserver, Mailserver und Syslog auch noch etwa 80 weitere
Dienste nicht so spaßig – ich auch nicht.

Für alle Mitstreiter, die ebenfalls Meldungen im Sinne von:
dpkg: error processing archive /var/cache/apt/archives/libmysqlclient18_5.5.43+maria-1~trusty_amd64.deb (--unpack):
libmysqlclient18:amd64 5.5.43+maria-1~trusty (Multi-Arch: no) is not co-installable with libmysqlclient18 which has multiple installed instances

oder Errors were encountered while processing:
/var/cache/apt/archives/libmysqlclient18_5.5.43+maria-1~trusty_amd64.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)

erhalten daher hier mal meine Vorgehensweise (in der Hoffnung dadurch
vielleicht dem einen oder anderen ein paar Zigaretten zu ersparen…).

Angefangen habe ich mit gemäß der Anleitung mit dem Zusatz für die MariaDB Repos
(siehe Link) und einem apt-get install mariadb-server.

Damit fing das Drama an. Mysql wurde wunschgemäß deinstalliert undmariaDB sollte dann folgen. Daraus wurde dank o.g. Meldung nichts und nun fehlte
es komplett an einem DBMS.

Die üblichen Versuche im Stile von „apt-get -f install“ usw. brachten absolut keinen Erfolg.
Auch Ansätze aus anderen Leidensberichten mit Befehlen, wie
dpkg -r mariadb-server mariadb-client-core-5.5 mariadb-client-5.5 mariadb-server-core-5.5 libmariadbclient18 mariadb-client-core-5.5

haben die Lage nur unwesentlich verbessert.

Das Problem blieb weiterhin die libmysqlclient18:
The following packages have unmet dependencies:
mariadb-client-5.5 : Depends: libmariadbclient18 (>= 5.5.43+maria-1~trusty) but it is not going to be installed
Depends: mariadb-client-core-5.5 (>= 5.5.43+maria-1~trusty) but it is not going to be installed

Auch ein  apt-get install –reinstall libmysqlclient18 hat nichts bewirkt.

Die Lösung brachte letzten Endes der folgende Ansatz:

In der /var/lib/dpkg/status fand sich bei mir der folgende Eintrag:
Package: libmysqlclient18
Status: deinstall ok config-files
Priority: optional
Section: libs
Installed-Size: 3324
Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>
Architecture: i386
Multi-Arch: same
Source: mysql-5.5
Version: 5.5.34-0ubuntu0.13.10.1
Config-Version: 5.5.34-0ubuntu0.13.10.1
Depends: mysql-common (>= 5.5.34-0ubuntu0.13.10.1), libc6 (>= 2.4), libgcc1 (>= 1:4.1.1), zlib1g (>= 1:1.1.4)
Pre-Depends: multiarch-support
Description: MySQL database client library
MySQL is a fast, stable and true multi-user, multi-threaded SQL database
server. SQL (Structured Query Language) is the most popular database query
language in the world. The main goals of MySQL are speed, robustness and
ease of use.
.
This package includes the client library.
Homepage: http://dev.mysql.com/
Original-Maintainer: Debian MySQL Maintainers <pkg-mysql-maint@lists.alioth.debian.org>

Bei mir sogar 2 Mal, einmal mit Version 5.5.34-0ubuntu0.13.10.1 und dazu noch mit
5.5.43-0ubuntu0.14.04.1 .
Ich habe daraufhin beide Einträge komplett,
d.h. von Package: libmysqlclient18 bis einschl. Original-Maintainer: Debian MySQL gelöscht.

Daraufhin folgte ein obligatorisches apt-get clean && apt-get update.
Danach mit apt-get install --reinstall libmysqlclient18 libmariadbclient18
den Eintrag neu setzen lassen und gleichzeitig die Libraries für MariaDB mit installiert.

Dazu hat apt dann auch direkt mariadb-client-core-5.5 installiert – und das endlich fehlerfrei.
Natürlich fehlt nun noch das eigentliche DBMS, womit wir wieder am Anfang wären: mariadb-server

Also auf ein neues: apt-get install mariadb-server
Dieses Mal hatte Apt nichts zu beanstanden und installierte fleissig drauf los. Die neue Konfiguration
für AppArmor mit Y bestätigt und kurz darauf das Root-Kennwort im MariaDB-Installer festgelegt.

Im Syslog kann man dazu dann auch schon den Fortschritt der Konvertierung beobachten:
/etc/mysql/debian-start[19477]: Upgrading MySQL tables if necessary.
Phase 1/4: Fixing views from mysql
Phase 2/4: Fixing table and database names
Phase 3/4: Checking and upgrading tables
Phase 4/4: Running 'mysql_fix_privilege_tables'

Während der 3. Phase kann man auch gut sehen, ob es Probleme bei den einzelnen Tabellen gibt.
Dies war bei mir nicht der Fall, alles lief mit einem OK durch.

Nach abgeschlossener Installation kann man dann noch begutachten, ob alles wieder erreichbar ist.
Neben den Logs der einzelnen Dienste kann man in gewohnter weise mit der SQL CLI prüfen, ob noch alles da ist:
~# mysql -uroot -p
Enter password:
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 11
Server version: 5.5.43-MariaDB-1~trusty-log mariadb.org binary distribution
MariaDB [(none)]> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| [alles weitere...] |
+--------------------+
MariaDB [(none)]> exit;
Bye

Macht auch das einen guten Eindruck, ist der Wechsel auf das moderne und performante
MariaDB vollbracht!


Schlagwörter: ,

Veröffentlicht1. Mai 2015 von gerger in Kategorie "Allgemein

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.