Add support for MariaDB and Percona MySQL Server.
This commit is contained in:
parent
afe30b381c
commit
b5e14dc11a
3
.gitignore
vendored
3
.gitignore
vendored
@ -1,4 +1,7 @@
|
||||
*.swp
|
||||
*.tar.gz
|
||||
/BAK/*
|
||||
/log*
|
||||
/mysql*
|
||||
/mariadb*
|
||||
/percona*
|
||||
|
4498
OLD/install_mariadb.sh
Executable file
4498
OLD/install_mariadb.sh
Executable file
File diff suppressed because it is too large
Load Diff
4498
OLD/install_mysql.sh
Executable file
4498
OLD/install_mysql.sh
Executable file
File diff suppressed because it is too large
Load Diff
513
install_mysql.sh
513
install_mysql.sh
@ -2,8 +2,6 @@
|
||||
|
||||
_backup_date="$(date +"%Y-%m-%d-%H%M")"
|
||||
|
||||
_MYSQL_VERSION=5.7.20
|
||||
|
||||
_MYSQL_SRC_BASE_DIR=$(dirname $(realpath $0))
|
||||
|
||||
_MYSQL_LOG_DIR=/var/log/mysql
|
||||
@ -19,15 +17,23 @@ _DISTRIBUTION=Debian
|
||||
|
||||
_VSERVER_GUEST=nein
|
||||
|
||||
_required_debian_packages="libevent-dev
|
||||
libjemalloc-dev
|
||||
_required_debian_packages="default-jdk
|
||||
gnutls-dev
|
||||
libaio-dev
|
||||
libarchive-dev
|
||||
libbison-dev
|
||||
libboost-all-dev
|
||||
libreadline-gplv2-dev
|
||||
libcrack2-dev
|
||||
libdw-dev
|
||||
libelf-dev
|
||||
libevent-dev
|
||||
libgroonga-dev
|
||||
libjemalloc-dev
|
||||
libjudy-dev
|
||||
libpam0g-dev
|
||||
libpcre3-dev
|
||||
gnutls-dev
|
||||
default-jdk"
|
||||
libreadline-gplv2-dev
|
||||
libsystemd-dev"
|
||||
|
||||
|
||||
_CRONTAB_BAKUP_FILE="$(mktemp)"
|
||||
@ -184,17 +190,104 @@ else
|
||||
UPDATE_MYSQL=false
|
||||
fi
|
||||
|
||||
if $UPDATE_MYSQL ; then
|
||||
if ! $UPDATE_MYSQL ; then
|
||||
|
||||
MYSQL_DISTRIBUTION=
|
||||
echo ""
|
||||
echo -e "\033[32m--\033[m"
|
||||
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_DISTRIBUTION" != "MySQL" -a "$MYSQL_DISTRIBUTION" != "MariaDB" -a "$MYSQL_DISTRIBUTION" != "Percona" ];do
|
||||
read OPTION
|
||||
case $OPTION in
|
||||
1) MYSQL_DISTRIBUTION="MySQL"
|
||||
;;
|
||||
2) MYSQL_DISTRIBUTION="Percona"
|
||||
;;
|
||||
3) MYSQL_DISTRIBUTION="MariaDB"
|
||||
;;
|
||||
*) echo ""
|
||||
echo -e "\tFalsche Eingabe ! [ 1 = MySQL ; 2 = Percona ; 3 = MariaDB ]"
|
||||
echo ""
|
||||
echononl "Eingabe:"
|
||||
;;
|
||||
esac
|
||||
done
|
||||
fi
|
||||
|
||||
if $UPDATE_MYSQL ; then
|
||||
|
||||
_MYSQLD_VERSION="$(mysqld -V 2>/dev/null)"
|
||||
|
||||
echo ""
|
||||
echononl "Get current MySQL distribution .."
|
||||
if [[ -z "$_MYSQLD_VERSION" ]]; then
|
||||
echo_failed
|
||||
fatal "No installed MySQL server or distribution found!"
|
||||
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
|
||||
MYSQL_CUR_DISTRIBUTION="MySQL"
|
||||
fi
|
||||
echo_ok
|
||||
|
||||
echononl "Get current MySQL Version.."
|
||||
CURRENT_VERSION="$(mysql -V | grep -o -E "Distrib\s+[3-9]+\.[0-9]+\.[0-9]+" | awk '{print$2}')"
|
||||
if [ "$?" = "0" ]; then
|
||||
CURRENT_VERSION="$(echo $_MYSQLD_VERSION | grep -o -E "[0-9]+\.[0-9]+\.[0-9]+(-[0-9]+)?")"
|
||||
CURRENT_MAIN_VERSION="$(echo $MYSQL_VERSION | cut -d '.' -f1,2)"
|
||||
if [[ -n "$CURRENT_VERSION" ]]; then
|
||||
echo_ok
|
||||
else
|
||||
echo_failed
|
||||
fatal "Getting current mysql version failed!"
|
||||
fi
|
||||
|
||||
info "Currently installed: $MYSQL_CUR_DISTRIBUTION version $CURRENT_VERSION"
|
||||
|
||||
if [[ "$MYSQL_CUR_DISTRIBUTION" = "MariaDB" ]]; then
|
||||
MYSQL_DISTRIBUTION="MariaDB"
|
||||
warn "Update with a MySQL distribution other than 'MariaDB' is not supported!"
|
||||
else
|
||||
|
||||
MYSQL_DISTRIBUTION=
|
||||
echo ""
|
||||
echo -e "\033[32m--\033[m"
|
||||
echo ""
|
||||
echo "Select the MySQL distribution to install."
|
||||
echo ""
|
||||
echo "Note:"
|
||||
echo " Update the current installation with MariaDB is not supported!"
|
||||
echo ""
|
||||
echo "[1] MySQL (the original community edition)"
|
||||
echo "[2] Percona Server for MySQL"
|
||||
echo ""
|
||||
echononl "Eingabe [1/2]: "
|
||||
|
||||
while [ "$MYSQL_DISTRIBUTION" != "MySQL" -a "$MYSQL_DISTRIBUTION" != "Percona" ];do
|
||||
read OPTION
|
||||
case $OPTION in
|
||||
1) MYSQL_DISTRIBUTION="MySQL"
|
||||
;;
|
||||
2) MYSQL_DISTRIBUTION="Percona"
|
||||
;;
|
||||
*) echo ""
|
||||
echo -e "\tFalsche Eingabe ! [ 1 = MySQL ; 2 = Percona ]"
|
||||
echo ""
|
||||
echononl "Eingabe:"
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
fi
|
||||
|
||||
fi
|
||||
|
||||
|
||||
@ -203,25 +296,42 @@ fi
|
||||
#echo ""
|
||||
echo -e "\033[32m--\033[m"
|
||||
echo ""
|
||||
echo "Gib die Versionsnummer der zu installierenden MySQL-Distribution an."
|
||||
echo "Gib die Versionsnummer der zu installierenden MySQL-Distribution (${MYSQL_DISTRIBUTION}) an."
|
||||
echo ""
|
||||
MYSQL_VERSION=
|
||||
while [ "X$MYSQL_VERSION" = "X" ]
|
||||
do
|
||||
echononl "MySQL Version [$_MYSQL_VERSION]: "
|
||||
echononl "$MYSQL_DISTRIBUTION Version : "
|
||||
read MYSQL_VERSION
|
||||
if [ "X$MYSQL_VERSION" = "X" ]; then
|
||||
MYSQL_VERSION=$_MYSQL_VERSION
|
||||
fi
|
||||
|
||||
_MYSQL_INSTALL_DIR=/usr/local/mysql-$MYSQL_VERSION
|
||||
_MYSQL_DATA_DIR=/data/mysql-$MYSQL_VERSION
|
||||
distfile=mysql-${MYSQL_VERSION}.tar.gz
|
||||
_MYSQL_INSTALL_DIR=/usr/local/${MYSQL_DISTRIBUTION,,}-$MYSQL_VERSION
|
||||
_MYSQL_DATA_DIR=/data/${MYSQL_DISTRIBUTION,,}-$MYSQL_VERSION
|
||||
done
|
||||
MYSQL_MAIN_VERSION=`echo $MYSQL_VERSION | cut -d '.' -f1,2`
|
||||
MYSQL_MAJOR_VERSION=`echo $MYSQL_VERSION | cut -d '.' -f1`
|
||||
MYSQL_MINOR_VERSION=`echo $MYSQL_VERSION | cut -d '.' -f2`
|
||||
MYSQL_PATCH_LEVEL=`echo $MYSQL_VERSION | cut -d '.' -f2`
|
||||
MYSQL_PATCH_LEVEL=`echo $MYSQL_VERSION | cut -d '.' -f3`
|
||||
|
||||
if $UPDATE_MYSQL ; then
|
||||
if [[ "$MYSQL_DISTRIBUTION" = "MariaDB" ]] && [[ "$MYSQL_MAIN_VERSION" != "$CURRENT_MAIN_VERSION" ]]; then
|
||||
warn "Only upgrades within minor versions are supported for MariaDB."
|
||||
fatal "Upgrade MariaDB from version $CURRENT_VERSION to version $MYSQL_VERSION is NOT possible!"
|
||||
fi
|
||||
fi
|
||||
|
||||
if [[ "$MYSQL_DISTRIBUTION" = "MySQL" ]]; then
|
||||
download_base_url="https://dev.mysql.com/get/Downloads/MySQL-${MYSQL_MAIN_VERSION}"
|
||||
distfile=${MYSQL_DISTRIBUTION,,}-${MYSQL_VERSION}.tar.gz
|
||||
elif [[ "$MYSQL_DISTRIBUTION" = "Percona" ]] ; then
|
||||
download_base_url="https://www.percona.com/downloads/Percona-Server-LATEST/Percona-Server-${MYSQL_VERSION}/source/tarball"
|
||||
distfile="percona-server-${MYSQL_VERSION}.tar.gz"
|
||||
elif [[ "$MYSQL_DISTRIBUTION" = "MariaDB" ]] ; then
|
||||
download_base_url="http://ftp.hosteurope.de/mirror/archive.mariadb.org/mariadb-${MYSQL_VERSION}/source"
|
||||
distfile=${MYSQL_DISTRIBUTION,,}-${MYSQL_VERSION}.tar.gz
|
||||
fi
|
||||
|
||||
|
||||
echo ""
|
||||
@ -238,7 +348,13 @@ do
|
||||
MYSQL_SRC_BASE_DIR=$_MYSQL_SRC_BASE_DIR
|
||||
fi
|
||||
done
|
||||
MYSQL_SRC_DIR=${MYSQL_SRC_BASE_DIR}/mysql-$MYSQL_VERSION
|
||||
if [[ "$MYSQL_DISTRIBUTION" = "MySQL" ]]; then
|
||||
MYSQL_SRC_DIR=${MYSQL_SRC_BASE_DIR}/mysql-$MYSQL_VERSION
|
||||
elif [[ "$MYSQL_DISTRIBUTION" = "Percona" ]] ; then
|
||||
MYSQL_SRC_DIR=${MYSQL_SRC_BASE_DIR}/percona-server-$MYSQL_VERSION
|
||||
elif [[ "$MYSQL_DISTRIBUTION" = "MariaDB" ]] ; then
|
||||
MYSQL_SRC_DIR=${MYSQL_SRC_BASE_DIR}/mariadb-$MYSQL_VERSION
|
||||
fi
|
||||
|
||||
echo ""
|
||||
echo -e "\033[32m--\033[m"
|
||||
@ -264,8 +380,17 @@ MY_CNF_FILE="${MYSQL_INSTALL_DIR}/etc/my.cnf"
|
||||
if $UPDATE_MYSQL ; then
|
||||
echo ""
|
||||
echononl "Ermittle Installations Verz. der existierenden MySQL Installation."
|
||||
if [[ -d "$(dirname "$MYSQL_INSTALL_DIR")/mysql-$CURRENT_VERSION" ]]; then
|
||||
|
||||
if [[ "$MYSQL_CUR_DISTRIBUTION" = "MySQL" ]]; then
|
||||
MYSQL_CUR_INSTALL_DIR="$(dirname "$MYSQL_INSTALL_DIR")/mysql-$CURRENT_VERSION"
|
||||
elif [[ "$MYSQL_CUR_DISTRIBUTION" = "Percona" ]] ; then
|
||||
MYSQL_CUR_INSTALL_DIR="$(dirname "$MYSQL_INSTALL_DIR")/percona-$CURRENT_VERSION"
|
||||
elif [[ "$MYSQL_CUR_DISTRIBUTION" = "MariaDB" ]] ; then
|
||||
MYSQL_CUR_INSTALL_DIR="$(dirname "$MYSQL_INSTALL_DIR")/mariadb-$CURRENT_VERSION"
|
||||
fi
|
||||
|
||||
|
||||
if [[ -d "$MYSQL_CUR_INSTALL_DIR" ]]; then
|
||||
echo_ok
|
||||
else
|
||||
echo_failed
|
||||
@ -291,9 +416,18 @@ done
|
||||
|
||||
if $UPDATE_MYSQL ; then
|
||||
echo ""
|
||||
echononl "Ermittle MySQL-Datenbank Verz. der existierenden MySQL Installation."
|
||||
if [[ -d "$(dirname "$MYSQL_DATA_DIR")/mysql-$CURRENT_VERSION" ]]; then
|
||||
|
||||
|
||||
if [[ "$MYSQL_CUR_DISTRIBUTION" = "MySQL" ]]; then
|
||||
MYSQL_CUR_DATA_DIR="$(dirname "$MYSQL_DATA_DIR")/mysql-$CURRENT_VERSION"
|
||||
elif [[ "$MYSQL_CUR_DISTRIBUTION" = "Percona" ]] ; then
|
||||
MYSQL_CUR_DATA_DIR="$(dirname "$MYSQL_DATA_DIR")/percona-$CURRENT_VERSION"
|
||||
elif [[ "$MYSQL_CUR_DISTRIBUTION" = "MariaDB" ]] ; then
|
||||
MYSQL_CUR_DATA_DIR="$(dirname "$MYSQL_DATA_DIR")/mariadb-$CURRENT_VERSION"
|
||||
fi
|
||||
|
||||
echononl "Ermittle MySQL-Datenbank Verz. der existierenden MySQL Installation."
|
||||
if [[ -d "$MYSQL_CUR_DATA_DIR" ]]; then
|
||||
echo_ok
|
||||
else
|
||||
echo_failed
|
||||
@ -546,8 +680,12 @@ MYSQL_SERVICE_FILE=""
|
||||
MYSQL_SYSV_INIT_SCRIPT=""
|
||||
SYSTEMD_PID_DIR=""
|
||||
if $INSTALL_SYSTEMD_SERVICE ; then
|
||||
if [[ "$MYSQL_DISTRIBUTION" = "MariaDB" ]]; then
|
||||
MYSQL_SERVICE_FILE="mariadb.service"
|
||||
else
|
||||
MYSQL_SERVICE_FILE="mysqld.service"
|
||||
SYSTEMD_PID_DIR="$MYSQL_DATA_DIR"
|
||||
fi
|
||||
else
|
||||
MYSQL_SYSV_INIT_SCRIPT="mysql.server"
|
||||
fi
|
||||
@ -569,10 +707,19 @@ fi
|
||||
echo ""
|
||||
echo "Linuxdistribution.........: $DISTRIBUTION"
|
||||
echo ""
|
||||
echo "MySQL Distribution........: $MYSQL_DISTRIBUTION"
|
||||
echo "MySQL Versionsnummer......: $MYSQL_VERSION"
|
||||
echo " MySQL Major Verion......: $MYSQL_MAIN_VERSION"
|
||||
echo " MySQL Main Verion.......: $MYSQL_MAIN_VERSION"
|
||||
echo " MySQL Major Verion......: $MYSQL_MAJOR_VERSION"
|
||||
echo " MySQL Minor Verion......: $MYSQL_MINOR_VERSION"
|
||||
echo " MySQL Patch Leveln......: $MYSQL_PATCH_LEVEL"
|
||||
echo ""
|
||||
echo "Sourcecodeverzeicnis......: $MYSQL_SRC_BASE_DIR"
|
||||
echo "Download base URL.........: $download_base_url"
|
||||
echo "Download file.............: $distfile"
|
||||
echo ""
|
||||
echo "Source Basis Verzeichnis..: $MYSQL_SRC_BASE_DIR"
|
||||
echo ""
|
||||
echo "Sourcecodeverzeicnis......: $MYSQL_SRC_DIR"
|
||||
echo "Installationsverzeichnis..: $MYSQL_INSTALL_DIR"
|
||||
echo "Default file 'my.cnf'.....: $MY_CNF_FILE"
|
||||
echo "Datenbankverzeichnis......: $MYSQL_DATA_DIR"
|
||||
@ -608,32 +755,32 @@ done
|
||||
|
||||
|
||||
|
||||
## - Sorcecode Verzeichnis vorhanden?
|
||||
## -
|
||||
if [ ! -d ${MYSQL_SRC_BASE_DIR} ] ; then
|
||||
fatal "Kann MySQL Sourcecode Verzeichnis \"${MYSQL_SRC_BASE_DIR}\" nicht finden."
|
||||
fi
|
||||
|
||||
|
||||
## - Sorcecode vorhanden?
|
||||
## -
|
||||
if [ ! -f ${MYSQL_SRC_BASE_DIR}/$distfile ] ; then
|
||||
|
||||
echo ""
|
||||
|
||||
echononl "Download $distfile ..."
|
||||
wget -O ${MYSQL_SRC_BASE_DIR}/$distfile https://dev.mysql.com/get/Downloads/MySQL-${MYSQL_MAIN_VERSION}/$distfile 2>/dev/null
|
||||
|
||||
if [ "$?" = "0" ]; then
|
||||
echo_ok
|
||||
else
|
||||
echo_failed
|
||||
fatal "Downloading $distfile (https://dev.mysql.com/get/Downloads/MySQL-${MYSQL_MAIN_VERSION}/$distfile) Fehlgeschlagen."
|
||||
fi
|
||||
fi
|
||||
|
||||
echo ""
|
||||
echo ""
|
||||
### - Sorcecode Verzeichnis vorhanden?
|
||||
### -
|
||||
#if [ ! -d ${MYSQL_SRC_BASE_DIR} ] ; then
|
||||
# fatal "Kann MySQL Sourcecode Verzeichnis \"${MYSQL_SRC_BASE_DIR}\" nicht finden."
|
||||
#fi
|
||||
#
|
||||
#
|
||||
### - Sorcecode vorhanden?
|
||||
### -
|
||||
#if [ ! -f ${MYSQL_SRC_BASE_DIR}/$distfile ] ; then
|
||||
#
|
||||
# echo ""
|
||||
#
|
||||
# echononl "Download $distfile ..."
|
||||
# wget -O ${MYSQL_SRC_BASE_DIR}/$distfile https://dev.mysql.com/get/Downloads/MySQL-${MYSQL_MAIN_VERSION}/$distfile 2>/dev/null
|
||||
#
|
||||
# if [ "$?" = "0" ]; then
|
||||
# echo_ok
|
||||
# else
|
||||
# echo_failed
|
||||
# fatal "Downloading $distfile (https://dev.mysql.com/get/Downloads/MySQL-${MYSQL_MAIN_VERSION}/$distfile) Fehlgeschlagen."
|
||||
# fi
|
||||
#fi
|
||||
#
|
||||
#echo ""
|
||||
#echo ""
|
||||
|
||||
|
||||
## - Erstelle Logverzeichnis
|
||||
@ -673,10 +820,19 @@ fi
|
||||
echo "## -" >> ${logdir}/main.log
|
||||
echo "## - Linuxdistribution.........: $DISTRIBUTION" >> ${logdir}/main.log
|
||||
echo "## - " >> ${logdir}/main.log
|
||||
echo "## - MySQL Distribution........: $MYSQL_DISTRIBUTION" >> ${logdir}/main.log
|
||||
echo "## - MySQL Versionsnummer......: $MYSQL_VERSION" >> ${logdir}/main.log
|
||||
echo "## - MySQL Major Verion.....: $MYSQL_MAIN_VERSION" >> ${logdir}/main.log
|
||||
echo "## - MySQL Main Verion.......: $MYSQL_MAIN_VERSION" >> ${logdir}/main.log
|
||||
echo "## - MySQL Major Verion......: $MYSQL_MAJOR_VERSION" >> ${logdir}/main.log
|
||||
echo "## - MySQL Minor Verion......: $MYSQL_MINOR_VERSION" >> ${logdir}/main.log
|
||||
echo "## - MySQL Patch Leveln......: $MYSQL_PATCH_LEVEL" >> ${logdir}/main.log
|
||||
echo "## -" >> ${logdir}/main.log
|
||||
echo "## - Download base URL.........: $download_base_url" >> ${logdir}/main.log
|
||||
echo "## - Download file.............: $distfile" >> ${logdir}/main.log
|
||||
echo "## - " >> ${logdir}/main.log
|
||||
echo "## - Sourcecodeverzeicnis......: $MYSQL_SRC_BASE_DIR" >> ${logdir}/main.log
|
||||
echo "## - Source Basis Verzeichnis..: $MYSQL_SRC_BASE_DIR" >> ${logdir}/main.log
|
||||
echo "## -" >> ${logdir}/main.log
|
||||
echo "## - Sourcecodeverzeicnis......: $MYSQL_SRC_DIR" >> ${logdir}/main.log
|
||||
echo "## - Installationsverzeichnis..: $MYSQL_INSTALL_DIR" >> ${logdir}/main.log
|
||||
echo "## - Default file 'my.cnf'.....: $MY_CNF_FILE" >> ${logdir}/main.log
|
||||
echo "## - Datenbankverzeichnis......: $MYSQL_DATA_DIR" >> ${logdir}/main.log
|
||||
@ -713,8 +869,18 @@ fi
|
||||
echo "" >> ${logdir}/main.log
|
||||
echo "DISTRIBUTION=$DISTRIBUTION" >> ${logdir}/main.log
|
||||
echo "" >> ${logdir}/main.log
|
||||
echo "MYSQL_DISTRIBUTION=$MYSQL_DISTRIBUTION" >> ${logdir}/main.log
|
||||
echo "MYSQL_VERSION=$MYSQL_VERSION" >> ${logdir}/main.log
|
||||
echo "MYSQL_MAIN_VERSION=$MYSQL_MAIN_VERSION" >> ${logdir}/main.log
|
||||
echo "MYSQL_MAJOR_VERSION=$MYSQL_MAJOR_VERSION" >> ${logdir}/main.log
|
||||
echo "MYSQL_MINOR_VERSION=$MYSQL_MINOR_VERSION" >> ${logdir}/main.log
|
||||
echo "MYSQL_PATCH_LEVEL=$MYSQL_PATCH_LEVEL" >> ${logdir}/main.log
|
||||
echo "" >> ${logdir}/main.log
|
||||
echo "download_base_url=$download_base_url" >> ${logdir}/main.log
|
||||
echo "distfile=$distfile" >> ${logdir}/main.log
|
||||
echo "" >> ${logdir}/main.log
|
||||
echo "MYSQL_SRC_BASE_DIR=$MYSQL_SRC_BASE_DIR" >> ${logdir}/main.log
|
||||
echo "MYSQL_SRC_DIR=$MYSQL_SRC_DIR" >> ${logdir}/main.log
|
||||
echo "MYSQL_INSTALL_DIR=$MYSQL_INSTALL_DIR" >> ${logdir}/main.log
|
||||
echo "MY_CNF_FILE=$MY_CNF_FILE" >> ${logdir}/main.log
|
||||
echo "MYSQL_DATA_DIR=$MYSQL_DATA_DIR" >> ${logdir}/main.log
|
||||
@ -757,6 +923,49 @@ if [[ -z "$_MYSQL_INITSCRIPT" ]] && [[ -z "$_SYSTEMD_SERVICE_FILE" ]] && $UPDATE
|
||||
fi
|
||||
|
||||
|
||||
## ---
|
||||
## - Download sources
|
||||
## ---
|
||||
|
||||
echo ""
|
||||
echo ""
|
||||
echo -e "\033[37m\033[1mDownload sources..\033[m"
|
||||
echo ""
|
||||
|
||||
echo "" >> ${logdir}/main.log
|
||||
echo "" >> ${logdir}/main.log
|
||||
echo "## -----" >> ${logdir}/main.log
|
||||
echo "## - Download sources" >> ${logdir}/main.log
|
||||
echo "## -----" >> ${logdir}/main.log
|
||||
|
||||
## - Sorcecode Verzeichnis vorhanden?
|
||||
## -
|
||||
if [ ! -d ${MYSQL_SRC_BASE_DIR} ] ; then
|
||||
fatal "Kann MySQL Sourcecode Verzeichnis \"${MYSQL_SRC_BASE_DIR}\" nicht finden."
|
||||
fi
|
||||
|
||||
## - Sorcecode vorhanden?
|
||||
## -
|
||||
echononl "Download $distfile .."
|
||||
if [ ! -f ${MYSQL_SRC_BASE_DIR}/$distfile ] ; then
|
||||
|
||||
echo "" >> ${logdir}/main.log
|
||||
echo "## - Download $distfile .." >> ${logdir}/main.log
|
||||
echo "## -" >> ${logdir}/main.log
|
||||
echo "wget -O ${MYSQL_SRC_BASE_DIR}/$distfile ${download_base_url}/$distfile" >> ${logdir}/main.log
|
||||
wget -O ${MYSQL_SRC_BASE_DIR}/$distfile ${download_base_url}/$distfile 2>/dev/null
|
||||
|
||||
if [ "$?" = "0" ]; then
|
||||
echo_ok
|
||||
else
|
||||
echo_failed
|
||||
fatal "Downloading $distfile (${download_base_url}/$distfile) Fehlgeschlagen."
|
||||
fi
|
||||
else
|
||||
echo_skipped
|
||||
fi
|
||||
|
||||
|
||||
## -----
|
||||
## - Doing some pre-installation tasks
|
||||
## -----
|
||||
@ -1167,6 +1376,30 @@ if ! $UPDATE_MYSQL ; then
|
||||
fatal "Installing dependency packages for \"mysql-server\" failed!"
|
||||
fi
|
||||
|
||||
if [[ "$MYSQL_DISTRIBUTION" = "MariaDB" ]] ; then
|
||||
## - Install dependency packages for \"mariadb-server\"
|
||||
## -
|
||||
echononl "Installing dependency packages for \"mariadb-server\""
|
||||
echo "" >> ${logdir}/main.log
|
||||
echo "## - Installing dependency packages for \"mariadb-server\"" >> ${logdir}/main.log
|
||||
echo "## -" >> ${logdir}/main.log
|
||||
echo "## - See: ${logdir}/apt-install.log" >> ${logdir}/main.log
|
||||
echo "## - " >> ${logdir}/main.log
|
||||
echo "DEBIAN_FRONTEND=noninteractive apt-get -q -y build-dep mariadb-server" >> ${logdir}/main.log
|
||||
|
||||
echo "" >> ${logdir}/apt-install.log
|
||||
echo "DEBIAN_FRONTEND=noninteractive apt-get -q -y build-dep mariadb-server" >> ${logdir}/apt-install.log 2>&1
|
||||
|
||||
DEBIAN_FRONTEND=noninteractive apt-get -q -y build-dep mariadb-server >> ${logdir}/apt-install.log 2>&1
|
||||
if [ "$?" = 0 ]; then
|
||||
echo_ok
|
||||
echo "" >> ${logdir}/apt-install.log
|
||||
else
|
||||
echo_failed
|
||||
fatal "Installing dependency packages for \"mariadb-server\" failed!"
|
||||
fi
|
||||
fi
|
||||
|
||||
# if apt-cache search mariadb-server | grep -q -E "^mariadb-server" > /dev/null 2>&1 ; then
|
||||
# echononl "Installing dependency packages for \"mariadb-server\""
|
||||
# echo "DEBIAN_FRONTEND=noninteractive apt-get -q -y build-dep mariadb-server" >> ${logdir}/apt-install.log 2>&1
|
||||
@ -1337,6 +1570,9 @@ if [ "$?" = "0" ]; then
|
||||
_mysql_log=${MYSQL_LOG_DIR}/mysql.log
|
||||
_mysql_error_log=${MYSQL_LOG_DIR}/mysql.err
|
||||
_mysql_slow_query_log=${MYSQL_LOG_DIR}/slow_query.log
|
||||
if [[ "$MYSQL_DISTRIBUTION" = "MariaDB" ]]; then
|
||||
mariadb_groonga_log=${MYSQL_LOG_DIR}/groonga.log
|
||||
fi
|
||||
else
|
||||
echo_failed
|
||||
fatal Kann LOG Verzeichnis \"${MYSQL_LOG_DIR}\" nicht erstellen..
|
||||
@ -1386,6 +1622,9 @@ if [ -d "${MYSQL_SRC_DIR}" ];then
|
||||
fi
|
||||
|
||||
if $INSTALL_SYSTEMD_SERVICE ; then
|
||||
|
||||
if [[ "$MYSQL_DISTRIBUTION" != "MariaDB" ]] ; then
|
||||
|
||||
if [[ ! -d "$SYSTEMD_PID_DIR" ]] ; then
|
||||
echononl "Create PID directory '$SYSTEMD_PID_DIR' .."
|
||||
echo "" >> ${logdir}/main.log
|
||||
@ -1414,6 +1653,7 @@ if $INSTALL_SYSTEMD_SERVICE ; then
|
||||
echo_failed
|
||||
error "Changing owner of PID directory '$SYSTEMD_PID_DIR' failed!"
|
||||
fi
|
||||
fi
|
||||
|
||||
fi
|
||||
fi
|
||||
@ -1425,13 +1665,13 @@ fi
|
||||
|
||||
echo ""
|
||||
echo ""
|
||||
echo -e "\033[37m\033[1mBasis Installation MySQL $MYSQL_VERSION\033[m"
|
||||
echo -e "\033[37m\033[1mBasis Installation $MYSQL_DISTRIBUTION $MYSQL_VERSION\033[m"
|
||||
echo ""
|
||||
|
||||
echo "" >> ${logdir}/main.log
|
||||
echo "" >> ${logdir}/main.log
|
||||
echo "## -----" >> ${logdir}/main.log
|
||||
echo "## - Basis Installation MySQL $MYSQL_VERSION" >> ${logdir}/main.log
|
||||
echo "## - Basis Installation $MYSQL_DISTRIBUTION $MYSQL_VERSION" >> ${logdir}/main.log
|
||||
echo "## -----" >> ${logdir}/main.log
|
||||
|
||||
## - This step is redundant and should never bee happend.
|
||||
@ -1482,12 +1722,19 @@ else
|
||||
fi
|
||||
|
||||
|
||||
|
||||
#echo ""
|
||||
#echo "shell> mkdir \"$MYSQL_INSTALL_DIR\""
|
||||
#echo "shell> \"cp $MYSQL_SRC_BASE_DIR/boost_1_59_0.tar.gz\" \"$MYSQL_INSTALL_DIR\""
|
||||
#echo ""
|
||||
#sleep 120
|
||||
|
||||
|
||||
|
||||
# - Erstelle Optionen für 'cmake'
|
||||
# -
|
||||
# ---
|
||||
# - MySQL / Percona
|
||||
# ---
|
||||
# - Note:
|
||||
# -
|
||||
# - Since MySQL v 5.7.16 the default 'secure_file_priv' value has changed
|
||||
@ -1496,6 +1743,29 @@ fi
|
||||
# -
|
||||
# - We change the default to empty ("") with -D INSTALL_SECURE_FILE_PRIVDIR="" option
|
||||
# -
|
||||
# ---
|
||||
# - MariaDBD
|
||||
# ---
|
||||
# -
|
||||
# - NOT supported (in contrast to original MySQL)
|
||||
# -
|
||||
# - -DINSTALL_SECURE_FILE_PRIVDIR=\"\"
|
||||
# - -DDOWNLOAD_BOOST=1
|
||||
# - -DWITH_BOOST=$MYSQL_INSTALL_DIR
|
||||
# -
|
||||
# - -DSYSTEMD_PID_DIR=$SYSTEMD_PID_DIR"
|
||||
# -
|
||||
# -
|
||||
# - Options enabled (not availabe at original MySQL)
|
||||
# -
|
||||
# - configured exactly as the binary releases from MariaDB
|
||||
# - -DBUILD_CONFIG=mysql_release
|
||||
# - creates libmysql* symbolic links:
|
||||
# - -CONC_WITH_MYSQLCOMPAT=ON
|
||||
# - groonga log file path
|
||||
# - -GRN_LOG_PATH=${MYSQL_LOG_DIR}/groonga.log
|
||||
# -
|
||||
# -
|
||||
# - To get a complete list of available options, type
|
||||
# - shell> cmake . -LH | tee ~/mysql_cmake_options.txt
|
||||
# -
|
||||
@ -1504,7 +1774,24 @@ echo "" >> ${logdir}/main.log
|
||||
echo "## - Erstelle Optionen für 'cmake'" >> ${logdir}/main.log
|
||||
echo "## -" >> ${logdir}/main.log
|
||||
|
||||
cmake_options="
|
||||
if [[ "$MYSQL_DISTRIBUTION" = "MariaDB" ]]; then
|
||||
|
||||
cmake_options="
|
||||
.
|
||||
-DBUILD_CONFIG=mysql_release
|
||||
-DCMAKE_INSTALL_PREFIX=$MYSQL_INSTALL_DIR
|
||||
-DMYSQL_DATADIR=$MYSQL_DATA_DIR
|
||||
-DENABLED_LOCAL_INFILE=ON
|
||||
-DGRN_LOG_PATH=$mariadb_groonga_log
|
||||
-DCONC_WITH_MYSQLCOMPAT=ON
|
||||
"
|
||||
if $INSTALL_SYSTEMD_SERVICE ; then
|
||||
cmake_options="$cmake_options -DWITH_SYSTEMD=yes"
|
||||
fi
|
||||
|
||||
else
|
||||
|
||||
cmake_options="
|
||||
-DCMAKE_INSTALL_PREFIX=$MYSQL_INSTALL_DIR
|
||||
-DMYSQL_DATADIR=$MYSQL_DATA_DIR
|
||||
.
|
||||
@ -1512,10 +1799,14 @@ cmake_options="
|
||||
-DENABLED_LOCAL_INFILE=1
|
||||
-DDOWNLOAD_BOOST=1
|
||||
-DWITH_BOOST=$MYSQL_INSTALL_DIR
|
||||
|
||||
"
|
||||
if $INSTALL_SYSTEMD_SERVICE ; then
|
||||
|
||||
if $INSTALL_SYSTEMD_SERVICE ; then
|
||||
cmake_options="$cmake_options -DWITH_SYSTEMD=1
|
||||
-DSYSTEMD_PID_DIR=$SYSTEMD_PID_DIR"
|
||||
fi
|
||||
|
||||
fi
|
||||
echo "cmake_options=\"$cmake_options\"" >> ${logdir}/main.log
|
||||
echo_ok
|
||||
@ -1572,13 +1863,13 @@ fi
|
||||
|
||||
echo ""
|
||||
echo ""
|
||||
echo -e "\033[37m\033[1mEinbinden der MySQL $MYSQL_VERSION Installation in das System\033[m"
|
||||
echo -e "\033[37m\033[1mEinbinden der $MYSQL_DISTRIBUTION $MYSQL_VERSION Installation in das System\033[m"
|
||||
echo ""
|
||||
|
||||
echo "" >> ${logdir}/main.log
|
||||
echo "" >> ${logdir}/main.log
|
||||
echo "## -----" >> ${logdir}/main.log
|
||||
echo "## - Einbinden der MySQL $MYSQL_VERSION Installation in das System" >> ${logdir}/main.log
|
||||
echo "## - Einbinden der $MYSQL_DISTRIBUTION $MYSQL_VERSION Installation in das System" >> ${logdir}/main.log
|
||||
echo "## -----" >> ${logdir}/main.log
|
||||
|
||||
echononl "Konfiguriere Manpages.."
|
||||
@ -1764,13 +2055,13 @@ fi
|
||||
|
||||
echo ""
|
||||
echo ""
|
||||
echo -e "\033[37m\033[1mKonfiguration (Teil 1) der MySQL $MYSQL_VERSION Installation\033[m"
|
||||
echo -e "\033[37m\033[1mKonfiguration (Teil 1) der $MYSQL_DISTRIBUTION $MYSQL_VERSION Installation\033[m"
|
||||
echo ""
|
||||
|
||||
echo "" >> ${logdir}/main.log
|
||||
echo "" >> ${logdir}/main.log
|
||||
echo "## -----" >> ${logdir}/main.log
|
||||
echo "## - Konfiguration (Teil 1) der MySQL $MYSQL_VERSION Installation" >> ${logdir}/main.log
|
||||
echo "## - Konfiguration (Teil 1) der $MYSQL_DISTRIBUTION $MYSQL_VERSION Installation" >> ${logdir}/main.log
|
||||
echo "## -----" >> ${logdir}/main.log
|
||||
|
||||
|
||||
@ -1806,30 +2097,33 @@ else
|
||||
fi
|
||||
|
||||
echo
|
||||
echononl "Richte MySQL Systemtabellen ein.."
|
||||
echononl "Richte $MYSQL_DISTRIBUTION Systemtabellen ein.."
|
||||
if ! $UPDATE_MYSQL ; then
|
||||
cd $MYSQL_INSTALL_DIR
|
||||
echo "" >> ${logdir}/main.log
|
||||
echo "## - Richte MySQL Systemtabellen ein" >> ${logdir}/main.log
|
||||
|
||||
if [[ "$MYSQL_DISTRIBUTION" = "MariaDB" ]] ; then
|
||||
|
||||
echo "## - Richte $MYSQL_DISTRIBUTION Systemtabellen ein" >> ${logdir}/main.log
|
||||
echo "## -" >> ${logdir}/main.log
|
||||
echo "${MYSQL_INSTALL_DIR}/bin/mysqld --initialize-insecure \ " >> ${logdir}/main.log
|
||||
echo "${MYSQL_INSTALL_DIR}/scripts/mysql_install_db \ " >> ${logdir}/main.log
|
||||
echo " --user=$MYSQL_USER \ " >> ${logdir}/main.log
|
||||
echo " --basedir=$MYSQL_INSTALL_DIR \ " >> ${logdir}/main.log
|
||||
echo " --datadir=$MYSQL_DATA_DIR \ " >> ${logdir}/main.log
|
||||
echo " --language=$MYSQL_INSTALL_DIR/share/german" >> ${logdir}/main.log
|
||||
echo " --lc-messages-dir=$MYSQL_INSTALL_DIR/share" >> ${logdir}/main.log
|
||||
echo "" >> ${logdir}/main.log
|
||||
|
||||
${MYSQL_INSTALL_DIR}/bin/mysqld --initialize-insecure \
|
||||
${MYSQL_INSTALL_DIR}/scripts/mysql_install_db \
|
||||
--user=$MYSQL_USER \
|
||||
--basedir=$MYSQL_INSTALL_DIR \
|
||||
--datadir=$MYSQL_DATA_DIR \
|
||||
--lc-messages-dir=$MYSQL_INSTALL_DIR/share/german \
|
||||
--lc-messages-dir=$MYSQL_INSTALL_DIR/share \
|
||||
>> ${logdir}/main.log 2>&1
|
||||
if [ "$?" = "0" ]; then
|
||||
echo_ok
|
||||
else
|
||||
echo_failed
|
||||
error Das Einrichten der MySQL Systemtabellen ist fehlgeschlagen..
|
||||
error Das Einrichten der $MYSQL_DISTRIBUTION Systemtabellen ist fehlgeschlagen..
|
||||
|
||||
echononl "continue anyway [yes/no]: "
|
||||
read OK
|
||||
@ -1840,6 +2134,41 @@ if ! $UPDATE_MYSQL ; then
|
||||
done
|
||||
[[ $OK = "yes" ]] || fatal "Abbruch durch User"
|
||||
fi
|
||||
|
||||
else
|
||||
|
||||
echo "## - Richte $MYSQL_DISTRIBUTION Systemtabellen ein" >> ${logdir}/main.log
|
||||
echo "## -" >> ${logdir}/main.log
|
||||
echo "${MYSQL_INSTALL_DIR}/bin/mysqld --initialize-insecure \ " >> ${logdir}/main.log
|
||||
echo " --user=$MYSQL_USER \ " >> ${logdir}/main.log
|
||||
echo " --basedir=$MYSQL_INSTALL_DIR \ " >> ${logdir}/main.log
|
||||
echo " --datadir=$MYSQL_DATA_DIR \ " >> ${logdir}/main.log
|
||||
echo " --lc-messages-dir=$MYSQL_INSTALL_DIR/share" >> ${logdir}/main.log
|
||||
echo "" >> ${logdir}/main.log
|
||||
|
||||
${MYSQL_INSTALL_DIR}/bin/mysqld --initialize-insecure \
|
||||
--user=$MYSQL_USER \
|
||||
--basedir=$MYSQL_INSTALL_DIR \
|
||||
--datadir=$MYSQL_DATA_DIR \
|
||||
--lc-messages-dir=$MYSQL_INSTALL_DIR/share \
|
||||
>> ${logdir}/main.log 2>&1
|
||||
if [ "$?" = "0" ]; then
|
||||
echo_ok
|
||||
else
|
||||
echo_failed
|
||||
error Das Einrichten der $MYSQL_DISTRIBUTION Systemtabellen ist fehlgeschlagen..
|
||||
|
||||
echononl "continue anyway [yes/no]: "
|
||||
read OK
|
||||
OK="$(echo "$OK" | tr '[:upper:]' '[:lower:]')"
|
||||
while [[ "$OK" != "yes" ]] && [[ "$OK" != "no" ]] ; do
|
||||
echononl "Wrong entry! - repeat [yes/no]: "
|
||||
read OK
|
||||
done
|
||||
[[ $OK = "yes" ]] || fatal "Abbruch durch User"
|
||||
fi
|
||||
|
||||
fi
|
||||
else
|
||||
echo_skipped
|
||||
fi
|
||||
@ -1919,6 +2248,7 @@ else
|
||||
echo "## -" >> ${logdir}/main.log
|
||||
echo "cd $MYSQL_INSTALL_DIR" >> ${logdir}/main.log
|
||||
cd $MYSQL_INSTALL_DIR
|
||||
if [[ -x "${MYSQL_INSTALL_DIR}/bin/mysql_ssl_rsa_setup" ]] ; then
|
||||
echo "${MYSQL_INSTALL_DIR}/bin/mysql_ssl_rsa_setup --datadir=$MYSQL_DATA_DIR .." >> ${logdir}/main.log
|
||||
${MYSQL_INSTALL_DIR}/bin/mysql_ssl_rsa_setup --datadir=$MYSQL_DATA_DIR >> ${logdir}/main.log 2>&1
|
||||
if [ "$?" = "0" ]; then
|
||||
@ -1936,6 +2266,10 @@ else
|
||||
done
|
||||
[[ $OK = "yes" ]] || fatal "Abbruch durch User"
|
||||
fi
|
||||
else
|
||||
echo_skipped
|
||||
warn "Script for generating certificates (mysql_ssl_rsa_setup) is not supported"
|
||||
fi
|
||||
fi
|
||||
|
||||
|
||||
@ -3803,10 +4137,18 @@ if $INSTALL_SYSTEMD_SERVICE ; then
|
||||
echo "" >> ${logdir}/main.log
|
||||
echo "## - Kopiere Service File nach '/etc/systemd/system'" >> ${logdir}/main.log
|
||||
echo "## -" >> ${logdir}/main.log
|
||||
echo "cp \"${MYSQL_INSTALL_DIR}/lib/systemd/system/mysqld.service\" /etc/systemd/system/$MYSQL_SERVICE_FILE" >> ${logdir}/main.log
|
||||
cp "${MYSQL_INSTALL_DIR}/lib/systemd/system/mysqld.service" /etc/systemd/system/$MYSQL_SERVICE_FILE >> ${logdir}/main.log 2>&1
|
||||
|
||||
if [[ $? -eq 0 ]]; then
|
||||
if [[ "$MYSQL_DISTRIBUTION" = "MariaDB" ]]; then
|
||||
echo "cp \"${MYSQL_INSTALL_DIR}/support-files/systemd/mariadb.service\" /etc/systemd/system/$MYSQL_SERVICE_FILE" >> ${logdir}/main.log
|
||||
cp "${MYSQL_INSTALL_DIR}/support-files/systemd/mariadb.service" "/etc/systemd/system/$MYSQL_SERVICE_FILE" >> ${logdir}/main.log 2>&1
|
||||
_retval=$?
|
||||
else
|
||||
echo "cp \"${MYSQL_INSTALL_DIR}/lib/systemd/system/mysqld.service\" /etc/systemd/system/$MYSQL_SERVICE_FILE" >> ${logdir}/main.log
|
||||
cp "${MYSQL_INSTALL_DIR}/lib/systemd/system/mysqld.service" "/etc/systemd/system/$MYSQL_SERVICE_FILE" >> ${logdir}/main.log 2>&1
|
||||
_retval=$?
|
||||
fi
|
||||
|
||||
if [[ $_retval -eq 0 ]]; then
|
||||
echo_ok
|
||||
else
|
||||
echo_failed
|
||||
@ -4045,13 +4387,13 @@ sleep 2
|
||||
|
||||
echo ""
|
||||
echo ""
|
||||
echo -e "\033[37m\033[1mKonfiguration (Teil 2) der MySQL $MYSQL_VERSION Installation\033[m"
|
||||
echo -e "\033[37m\033[1mKonfiguration (Teil 2) der $MYSQL_DISTRIBUTION $MYSQL_VERSION Installation\033[m"
|
||||
echo ""
|
||||
|
||||
echo "" >> ${logdir}/main.log
|
||||
echo "" >> ${logdir}/main.log
|
||||
echo "## -----" >> ${logdir}/main.log
|
||||
echo "## - Konfiguration (Teil 2) der MySQL $MYSQL_VERSION Installation" >> ${logdir}/main.log
|
||||
echo "## - Konfiguration (Teil 2) der $MYSQL_DISTRIBUTION $MYSQL_VERSION Installation" >> ${logdir}/main.log
|
||||
echo "## -----" >> ${logdir}/main.log
|
||||
|
||||
if ! $UPDATE_MYSQL ; then
|
||||
@ -4131,6 +4473,33 @@ if ! $UPDATE_MYSQL ; then
|
||||
## - Set root password
|
||||
## -
|
||||
echononl "Setze root Passwort für den MySQL Zugang"
|
||||
if [[ "$MYSQL_DISTRIBUTION" = "MariaDB" ]]; then
|
||||
|
||||
echo "" >> ${logdir}/main.log
|
||||
echo "## - Setze root Passwort für den MariaDB Zugang" >> ${logdir}/main.log
|
||||
echo "## -" >> ${logdir}/main.log
|
||||
echo "${MYSQL_INSTALL_DIR}/bin/mysql -uroot mysql -N -s -e \"UPDATE user SET Password = password('$MYSQL_ROOT_PW') WHERE User = 'root'\"" >> ${logdir}/main.log
|
||||
|
||||
${MYSQL_INSTALL_DIR}/bin/mysql -uroot mysql -N -s -e "UPDATE user SET Password = password('$MYSQL_ROOT_PW') WHERE User = 'root'" \
|
||||
>> ${logdir}/main.log 2>&1
|
||||
if [ "$?" = "0" ]; then
|
||||
echo_ok
|
||||
else
|
||||
echo_failed
|
||||
error Konnte root Passwort für den MariaDB Server nicht setzen..
|
||||
|
||||
echononl "continue anyway [yes/no]: "
|
||||
read OK
|
||||
OK="$(echo "$OK" | tr '[:upper:]' '[:lower:]')"
|
||||
while [[ "$OK" != "yes" ]] && [[ "$OK" != "no" ]] ; do
|
||||
echononl "Wrong entry! - repeat [yes/nno]: "
|
||||
read OK
|
||||
done
|
||||
[[ $OK = "yes" ]] || fatal "Abbruch durch User"
|
||||
fi
|
||||
|
||||
else
|
||||
|
||||
echo "" >> ${logdir}/main.log
|
||||
echo "## - Setze root Passwort für den MySQL Zugang" >> ${logdir}/main.log
|
||||
echo "## -" >> ${logdir}/main.log
|
||||
@ -4154,6 +4523,8 @@ if ! $UPDATE_MYSQL ; then
|
||||
[[ $OK = "yes" ]] || fatal "Abbruch durch User"
|
||||
fi
|
||||
|
||||
fi
|
||||
|
||||
## - Flush privileges
|
||||
## -
|
||||
echononl "Neu Einlesen der Berechtigung (MySQL Server).."
|
||||
|
Loading…
Reference in New Issue
Block a user