diff --git a/create_database.sh b/create_database.sh index 13cf436..d4edcf7 100755 --- a/create_database.sh +++ b/create_database.sh @@ -170,12 +170,45 @@ detect_mysql_version () { if [[ -z "$_MYSQLD_VERSION" ]]; then fatal "No installed MySQL server or distribution found!" + elif [[ -d "/usr/local/mysql" ]] && [[ "$(basename "$(realpath "/usr/local/mysql")")" =~ percona- ]]; then + MYSQL_CUR_DISTRIBUTION="Percona" elif [[ "$_MYSQLD_VERSION" =~ MariaDB ]]; then MYSQL_CUR_DISTRIBUTION="MariaDB" - elif [[ "$(basename "$(realpath "/usr/local/mysql")")" =~ percona- ]]; then - MYSQL_CUR_DISTRIBUTION="Percona" - elif [[ "$(basename "$(realpath "/usr/local/mysql")")" =~ mysql- ]]; then + elif [[ "$_MYSQLD_VERSION" =~ MySQL ]]; then MYSQL_CUR_DISTRIBUTION="MySQL" + elif [[ -d "/usr/local/mysql" ]] && [[ "$(basename "$(realpath "/usr/local/mysql")")" =~ mysql- ]]; then + MYSQL_CUR_DISTRIBUTION="MySQL" + elif [[ -d "/usr/local/mysql" ]] && [[ "$(basename "$(realpath "/usr/local/mysql")")" =~ mariadb- ]]; then + MYSQL_CUR_DISTRIBUTION="MariaDB" + else + error "MySQL Instalation found, but cannot determin the distribution!" + + MYSQL_CUR_DISTRIBUTION= + echo "" + echo " Select the MySQL distribution to install." + echo "" + echo " [1] MySQL (the original community edition)" + echo " [2] Percona Server for MySQL" + echo " [3] MariaDB" + echo "" + echononl " Eingabe [1/2/3]: " + + while [ "$MYSQL_CUR_DISTRIBUTION" != "MySQL" -a "$MYSQL_CUR_DISTRIBUTION" != "MariaDB" -a "$MYSQL_CUR_DISTRIBUTION" != "Percona" ];do + read OPTION + case $OPTION in + 1) MYSQL_CUR_DISTRIBUTION="MySQL" + ;; + 2) MYSQL_CUR_DISTRIBUTION="Percona" + ;; + 3) MYSQL_CUR_DISTRIBUTION="MariaDB" + ;; + *) echo "" + echo -e "\tFalsche Eingabe ! [ 1 = MySQL ; 2 = Percona ; 3 = MariaDB ]" + echo "" + echononl " Eingabe:" + ;; + esac + done fi MYSQL_VERSION="$(echo $_MYSQLD_VERSION | grep -o -E "[0-9]+\.[0-9]+\.[0-9]+(-[0-9]+)?" | head -n 1)" @@ -336,7 +369,9 @@ else parameter manually." fi else - if [[ -f "/usr/local/mysql/sys-maint.cnf" ]] ; then + if $(mysql --login-path=local -e ";" > /dev/null 2>&1) ; then + MYSQL_CREDENTIAL_ARGS="--login-path=local" + elif [[ -f "/usr/local/mysql/sys-maint.cnf" ]] ; then MYSQL_CREDENTIAL_ARGS="--defaults-file=/usr/local/mysql/sys-maint.cnf" elif [[ -f "/etc/mysql/debian.cnf" ]] ; then MYSQL_CREDENTIAL_ARGS="--defaults-file=/etc/mysql/debian.cnf" diff --git a/drop_database.sh b/drop_database.sh index 0c5886d..174d32d 100755 --- a/drop_database.sh +++ b/drop_database.sh @@ -169,12 +169,45 @@ detect_mysql_version () { if [[ -z "$_MYSQLD_VERSION" ]]; then fatal "No installed MySQL server or distribution found!" + elif [[ -d "/usr/local/mysql" ]] && [[ "$(basename "$(realpath "/usr/local/mysql")")" =~ percona- ]]; then + MYSQL_CUR_DISTRIBUTION="Percona" elif [[ "$_MYSQLD_VERSION" =~ MariaDB ]]; then MYSQL_CUR_DISTRIBUTION="MariaDB" - elif [[ "$(basename "$(realpath "/usr/local/mysql")")" =~ percona- ]]; then - MYSQL_CUR_DISTRIBUTION="Percona" - elif [[ "$(basename "$(realpath "/usr/local/mysql")")" =~ mysql- ]]; then + elif [[ "$_MYSQLD_VERSION" =~ MySQL ]]; then MYSQL_CUR_DISTRIBUTION="MySQL" + elif [[ -d "/usr/local/mysql" ]] && [[ "$(basename "$(realpath "/usr/local/mysql")")" =~ mysql- ]]; then + MYSQL_CUR_DISTRIBUTION="MySQL" + elif [[ -d "/usr/local/mysql" ]] && [[ "$(basename "$(realpath "/usr/local/mysql")")" =~ mariadb- ]]; then + MYSQL_CUR_DISTRIBUTION="MariaDB" + else + error "MySQL Instalation found, but cannot determin the distribution!" + + MYSQL_CUR_DISTRIBUTION= + echo "" + echo " Select the MySQL distribution to install." + echo "" + echo " [1] MySQL (the original community edition)" + echo " [2] Percona Server for MySQL" + echo " [3] MariaDB" + echo "" + echononl " Eingabe [1/2/3]: " + + while [ "$MYSQL_CUR_DISTRIBUTION" != "MySQL" -a "$MYSQL_CUR_DISTRIBUTION" != "MariaDB" -a "$MYSQL_CUR_DISTRIBUTION" != "Percona" ];do + read OPTION + case $OPTION in + 1) MYSQL_CUR_DISTRIBUTION="MySQL" + ;; + 2) MYSQL_CUR_DISTRIBUTION="Percona" + ;; + 3) MYSQL_CUR_DISTRIBUTION="MariaDB" + ;; + *) echo "" + echo -e "\tFalsche Eingabe ! [ 1 = MySQL ; 2 = Percona ; 3 = MariaDB ]" + echo "" + echononl " Eingabe:" + ;; + esac + done fi MYSQL_VERSION="$(echo $_MYSQLD_VERSION | grep -o -E "[0-9]+\.[0-9]+\.[0-9]+(-[0-9]+)?" | head -n 1)" @@ -335,7 +368,9 @@ else parameter manually." fi else - if [[ -f "/usr/local/mysql/sys-maint.cnf" ]] ; then + if $(mysql --login-path=local -e ";" > /dev/null 2>&1) ; then + MYSQL_CREDENTIAL_ARGS="--login-path=local" + elif [[ -f "/usr/local/mysql/sys-maint.cnf" ]] ; then MYSQL_CREDENTIAL_ARGS="--defaults-file=/usr/local/mysql/sys-maint.cnf" elif [[ -f "/etc/mysql/debian.cnf" ]] ; then MYSQL_CREDENTIAL_ARGS="--defaults-file=/etc/mysql/debian.cnf" diff --git a/drop_tables.sh b/drop_tables.sh index 0ba7965..aef86ae 100755 --- a/drop_tables.sh +++ b/drop_tables.sh @@ -154,12 +154,45 @@ detect_mysql_version () { if [[ -z "$_MYSQLD_VERSION" ]]; then fatal "No installed MySQL server or distribution found!" + elif [[ -d "/usr/local/mysql" ]] && [[ "$(basename "$(realpath "/usr/local/mysql")")" =~ percona- ]]; then + MYSQL_CUR_DISTRIBUTION="Percona" elif [[ "$_MYSQLD_VERSION" =~ MariaDB ]]; then MYSQL_CUR_DISTRIBUTION="MariaDB" - elif [[ "$(basename "$(realpath "/usr/local/mysql")")" =~ percona- ]]; then - MYSQL_CUR_DISTRIBUTION="Percona" - elif [[ "$(basename "$(realpath "/usr/local/mysql")")" =~ mysql- ]]; then + elif [[ "$_MYSQLD_VERSION" =~ MySQL ]]; then MYSQL_CUR_DISTRIBUTION="MySQL" + elif [[ -d "/usr/local/mysql" ]] && [[ "$(basename "$(realpath "/usr/local/mysql")")" =~ mysql- ]]; then + MYSQL_CUR_DISTRIBUTION="MySQL" + elif [[ -d "/usr/local/mysql" ]] && [[ "$(basename "$(realpath "/usr/local/mysql")")" =~ mariadb- ]]; then + MYSQL_CUR_DISTRIBUTION="MariaDB" + else + error "MySQL Instalation found, but cannot determin the distribution!" + + MYSQL_CUR_DISTRIBUTION= + echo "" + echo " Select the MySQL distribution to install." + echo "" + echo " [1] MySQL (the original community edition)" + echo " [2] Percona Server for MySQL" + echo " [3] MariaDB" + echo "" + echononl " Eingabe [1/2/3]: " + + while [ "$MYSQL_CUR_DISTRIBUTION" != "MySQL" -a "$MYSQL_CUR_DISTRIBUTION" != "MariaDB" -a "$MYSQL_CUR_DISTRIBUTION" != "Percona" ];do + read OPTION + case $OPTION in + 1) MYSQL_CUR_DISTRIBUTION="MySQL" + ;; + 2) MYSQL_CUR_DISTRIBUTION="Percona" + ;; + 3) MYSQL_CUR_DISTRIBUTION="MariaDB" + ;; + *) echo "" + echo -e "\tFalsche Eingabe ! [ 1 = MySQL ; 2 = Percona ; 3 = MariaDB ]" + echo "" + echononl " Eingabe:" + ;; + esac + done fi MYSQL_VERSION="$(echo $_MYSQLD_VERSION | grep -o -E "[0-9]+\.[0-9]+\.[0-9]+(-[0-9]+)?" | head -n 1)" @@ -258,7 +291,9 @@ else parameter manually." fi else - if [[ -f "/usr/local/mysql/sys-maint.cnf" ]] ; then + if $(mysql --login-path=local -e ";" > /dev/null 2>&1) ; then + MYSQL_CREDENTIAL_ARGS="--login-path=local" + elif [[ -f "/usr/local/mysql/sys-maint.cnf" ]] ; then MYSQL_CREDENTIAL_ARGS="--defaults-file=/usr/local/mysql/sys-maint.cnf" elif [[ -f "/etc/mysql/debian.cnf" ]] ; then MYSQL_CREDENTIAL_ARGS="--defaults-file=/etc/mysql/debian.cnf"