summaryrefslogtreecommitdiff
path: root/mariadb-check-upgrade.sh
blob: 740e4be9260930ff7a6755466ff47dfdb164be94 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
#!/bin/sh

source "`dirname ${BASH_SOURCE[0]}`/mariadb-scripts-common"

upgrade_info_file="$datadir/mysql_upgrade_info"
version=0
# get version as integer from mysql_upgrade_info file
if [ -f "$upgrade_info_file" ] && [ -r "$upgrade_info_file" ] ; then
    version_major=$(cat "$upgrade_info_file" | head -n 1 | sed -e 's/\([0-9]*\)\.\([0-9]*\)\..*$/\1/')
    version_minor=$(cat "$upgrade_info_file" | head -n 1 | sed -e 's/\([0-9]*\)\.\([0-9]*\)\..*$/\2/')
    if [[ $version_major =~ ^[0-9]+$ ]] && [[ $version_minor =~ ^[0-9]+$ ]] ; then
        version=$((version_major*100+version_minor))
    fi
fi

# compute current version as integer
thisversion=$((10*100+5))

# provide warning in cases we should run mysql_upgrade
if [ $version -ne $thisversion ] ; then

    # give extra warning if some version seems to be skipped
    if [ $version -gt 0 ] && [ $version -lt 505 ] ; then
        echo "The datadir located at $datadir seems to be older than of a version 5.5. Please, mind that as a general rule, to upgrade from one release series to another, go to the next series rather than skipping a series." >&2
    fi

    cat <<EOF >&2
The datadir located at $datadir needs to be upgraded using 'mariadb-upgrade' tool. This can be done using the following steps:

  1. Back-up your data before with 'mariadb-upgrade'
  2. Start the database daemon using 'systemctl start mariadb.service'
  3. Run 'mariadb-upgrade' with a database user that has sufficient privileges

Read more about 'mariadb-upgrade' usage at:
https://mariadb.com/kb/en/mysql_upgrade/
EOF
fi

exit 0