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.