Gentoo: Migration von MySQL nach MariaDB mit minimalem Unterbruch

Die Migration von Mysql nach MariaDB ist gerade unter Gentoo Linux nicht ohne Unterbruch möglich – portage blockiert die Installation von MariaDB wenn MySQL bereits installiert ist:

www ~ # emerge --ask --verbose mariadb

[ebuild  N    ] dev-perl/TermReadKey-2.330.0 
[ebuild  N    ] virtual/perl-Time-HiRes-1.972.600-r3 
[ebuild  N    ] virtual/perl-Term-ANSIColor-4.30.0-r1 
[ebuild  N    ] virtual/perl-Getopt-Long-2.450.0-r1 
[ebuild  N    ] dev-db/mariadb-10.0.28  USE="openssl perl server -bindist -debug -embedded -extraengine -jdbc -jemalloc -latin1 (-libressl) -odbc -oqgraph -pam -profiling (-selinux) -sphinx -static -static-libs -systemtap -tcmalloc {-test} -tokudb -xml -yassl" ABI_X86="(64) -32 (-x32)" 
[blocks B     ] dev-db/mysql ("dev-db/mysql" is blocking dev-db/mariadb-10.0.28)
[blocks B     ] dev-db/mariadb ("dev-db/mariadb" is blocking dev-db/mysql-5.6.34)

 * Error: The above package list contains packages which cannot be
 * installed at the same time on the same system.

Blöd – jetzt müsste ich MySQL entfernen und MariaDB installieren, was je nach Leistungsfähigkeit des Servers schnell mal über einer Stunde dauern kann – über 1h Downtime.

Hinweis: Das ist kein Patentrezept. Der Leser ist für seine eigene Intelligenz verantwortlich. Datensicherungen verhindern Datenverlust.

Das lässt sich schneller umsetzen.

Schritt 1: Installation der notwendigen Abhängigkeiten:

www ~ # emerge --ask --verbose --onlydeps mariadb

Schritt 2: Binärpakete erstellen:

emerge --ask --verbose --buildpkgonly mariadb mysql

Ja, von MySQL erstelle ich auch ein Binärpaket – falls etwas schief geht möchte ich möglichst schnell wieder zurück können…

Schritt 3: Nun kann migriert werden:

www ~ # /etc/init.d/mysql stop && \
emerge -C dev-db/mysql && \
emerge --usepkgonly dev-db/mariadb && \
/etc/init.d/mysql start

Schritt 4: mysql_upgrade-tool ausführen:

mysql_upgrade -u root -p

Schritt 5: System bereinigen

Zu guter Letzt empfiehlt es sich, das System zu bereinigen. Dazu muss ich Euch keine Zeichnung machen.

Leave a Reply

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

This site uses Akismet to reduce spam. Learn how your comment data is processed.