CentOS 7 kommt von Hause aus mit einer fast antiken MariaDB-Version 5.5.
Diese zu ersetzen ist aber relativ einfach. Dazu installieren wir zunächst das MariaDB-Repository mit wenigen Kommandos:
wget https://downloads.mariadb.com/MariaDB/mariadb_repo_setup chmod 755 mariadb_repo_setup ./mariadb_repo_setup
Bevor wir den Austausch beginnen, machen wir sicherheitshalber ein vollständiges Backup:
mysqldump -Ap > mysqldump_20200610.sql
Nun stoppen wir den Server:
systemctl stop mariadb
Und starten anschließend das Upgrade über yum:
yum update 'mariadb*'
Nach dem Upgrade starten wir MariaDB wieder und verifizieren die neue Version:
# systemctl start mariadb # mysql -p MariaDB [(none)]> SELECT VERSION(); +-----------------+ | VERSION() | +-----------------+ | 10.4.13-MariaDB | +-----------------+
Um das Upgrade abzuschließen, lassen wir nun noch mysql_upgrade laufen:
# mysql_upgrade -p Phase 1/7: Checking and upgrading mysql database Processing databases mysql mysql.columns_priv OK mysql.db OK mysql.event OK mysql.func OK mysql.help_category OK mysql.help_keyword OK mysql.help_relation OK mysql.help_topic OK mysql.host OK mysql.ndb_binlog_index OK mysql.plugin OK mysql.proc OK mysql.procs_priv OK mysql.proxies_priv OK mysql.servers OK mysql.tables_priv OK mysql.time_zone OK mysql.time_zone_leap_second OK mysql.time_zone_name OK mysql.time_zone_transition OK mysql.time_zone_transition_type OK mysql.user OK Upgrading from a version before MariaDB-10.1 Phase 2/7: Installing used storage engines Checking for tables with unknown storage engine Phase 3/7: Fixing views Phase 4/7: Running 'mysql_fix_privilege_tables' Phase 5/7: Fixing table and database names Phase 6/7: Checking and upgrading tables Processing databases [...] information_schema performance_schema Phase 7/7: Running 'FLUSH PRIVILEGES' OK
Damit auch das neue MariaDB automatisch startet, muss es neu in Systemd eingebunden werden:
# systemctl enable mariadb
Created symlink from /etc/systemd/system/mysql.service to /usr/lib/systemd/system/mariadb.service.
Created symlink from /etc/systemd/system/mysqld.service to /usr/lib/systemd/system/mariadb.service.
Created symlink from /etc/systemd/system/multi-user.target.wants/mariadb.service to /usr/lib/systemd/system/mariadb.service.
Fertig!