#!/bin/bash # This script validates and upgrades the MariaDB version #----------------------------------------------------------# # Variable & Function # #----------------------------------------------------------# # Set MariaDB Target Version mariadb_v='10.11' #----------------------------------------------------------# # Verifications # #----------------------------------------------------------# # Detect installed MariaDB version mysql_v="$(mysqld -V | awk '{print $3}' | cut -d: -f1)" if [ "${mysql_v%.*}" = "$mariadb_v" ]; then echo "[ ! ] MariaDB version ($mariadb_v) is already up to date." exit 0 else echo "[ * ] Upgrading MariaDB version to ($mariadb_v)..." fi # Get OS details os="$(grep "^ID=" /etc/os-release | cut -d= -f2)" codename="$(lsb_release -s -c)" case $(arch) in x86_64) arch="amd64" ;; aarch64) arch="arm64" ;; *) echo "[ ! ] Error: $(arch) is currently not supported!" exit 1 ;; esac #----------------------------------------------------------# # Action # #----------------------------------------------------------# # Installing MariaDB repository apt="/etc/apt/sources.list.d" echo "[ * ] Installing MariaDB repository..." echo "deb [arch=$arch signed-by=/usr/share/keyrings/mariadb-keyring.gpg] https://dlm.mariadb.com/repo/mariadb-server/$mariadb_v/repo/$os $codename main" > $apt/mariadb.list curl -s https://mariadb.org/mariadb_release_signing_key.asc | gpg --dearmor | tee /usr/share/keyrings/mariadb-keyring.gpg > /dev/null 2>&1 # Update repository echo "[ * ] Update apt repository..." apt update -qq > /dev/null 2>&1 # Stop and uninstall old version echo "[ * ] Stop and remove old MariaDB Server (${mysql_v%.*})..." systemctl -q stop mariadb mysql 2> /dev/null apt remove -qq mariadb-server -y > /dev/null 2>&1 # Install new version and run upgrade echo "[ * ] Installing new MariaDB Server, start and run upgrade..." apt install -qq mariadb-server -y update-rc.d mariadb defaults > /dev/null 2>&1 systemctl -q daemon-reload systemctl -q enable mariadb systemctl -q start mariadb mariadb-upgrade