upgrade_mariadb.sh 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. #!/bin/bash
  2. # This script validates and upgrades the MariaDB version
  3. #----------------------------------------------------------#
  4. # Variable & Function #
  5. #----------------------------------------------------------#
  6. # Set MariaDB Target Version
  7. mariadb_v='10.11'
  8. #----------------------------------------------------------#
  9. # Verifications #
  10. #----------------------------------------------------------#
  11. # Detect installed MariaDB version
  12. mysql_v="$(mysqld -V | awk '{print $3}' | cut -d: -f1)"
  13. if [ "${mysql_v%.*}" = "$mariadb_v" ]; then
  14. echo "[ ! ] MariaDB version ($mariadb_v) is already up to date."
  15. exit 0
  16. else
  17. echo "[ * ] Upgrading MariaDB version to ($mariadb_v)..."
  18. fi
  19. # Get OS details
  20. os="$(grep "^ID=" /etc/os-release | cut -d= -f2)"
  21. codename="$(lsb_release -s -c)"
  22. case $(arch) in
  23. x86_64)
  24. arch="amd64"
  25. ;;
  26. aarch64)
  27. arch="arm64"
  28. ;;
  29. *)
  30. echo "[ ! ] Error: $(arch) is currently not supported!"
  31. exit 1
  32. ;;
  33. esac
  34. #----------------------------------------------------------#
  35. # Action #
  36. #----------------------------------------------------------#
  37. # Installing MariaDB repository
  38. apt="/etc/apt/sources.list.d"
  39. echo "[ * ] Installing MariaDB repository..."
  40. 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
  41. curl -s https://mariadb.org/mariadb_release_signing_key.asc | gpg --dearmor | tee /usr/share/keyrings/mariadb-keyring.gpg > /dev/null 2>&1
  42. # Update repository
  43. echo "[ * ] Update apt repository..."
  44. apt update -qq > /dev/null 2>&1
  45. # Stop and uninstall old version
  46. echo "[ * ] Stop and remove old MariaDB Server (${mysql_v%.*})..."
  47. systemctl -q stop mariadb mysql 2> /dev/null
  48. apt remove -qq mariadb-server -y > /dev/null 2>&1
  49. # Install new version and run upgrade
  50. echo "[ * ] Installing new MariaDB Server, start and run upgrade..."
  51. apt install -qq mariadb-server -y
  52. update-rc.d mariadb defaults > /dev/null 2>&1
  53. systemctl -q daemon-reload
  54. systemctl -q enable mariadb
  55. systemctl -q start mariadb
  56. mariadb-upgrade