From 81f345b175bb1d03896155e80cc018e32323a62d Mon Sep 17 00:00:00 2001 From: Christoph Date: Tue, 27 Feb 2018 04:30:44 +0100 Subject: [PATCH] Some minor changes. --- install_mysql.sh | 136 ++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 129 insertions(+), 7 deletions(-) diff --git a/install_mysql.sh b/install_mysql.sh index 05fb875..74fd09c 100755 --- a/install_mysql.sh +++ b/install_mysql.sh @@ -33,7 +33,14 @@ _required_debian_packages="default-jdk libpam0g-dev libpcre3-dev libreadline-gplv2-dev - libsystemd-dev" + libsystemd-dev + cpanminus" + +install_additional_debian_packages=true + +_additional_debian_packages_mysql="" +_additional_debian_packages_percona="libperconaserverclient20-dev" +_additional_debian_packages_mariadb="" _CRONTAB_BAKUP_FILE="$(mktemp)" @@ -371,7 +378,7 @@ do LINK=yes fi - logdir=${MYSQL_SRC_BASE_DIR}/log-$MYSQL_VERSION + logdir=${MYSQL_SRC_BASE_DIR}/log-${MYSQL_DISTRIBUTION,,}-$MYSQL_VERSION done @@ -1241,8 +1248,10 @@ if ! $UPDATE_MYSQL ; then done if [ -n "$INSTALLED_MYSQL_DEB" ]; then echo "" >> ${logdir}/main.log - echo "apt-get remove --purge -q -y $INSTALLED_MYSQL_DEB" >> ${logdir}/main.log - apt-get remove --purge -q -y $INSTALLED_MYSQL_DEB >> ${logdir}/main.log 2>&1 + echo "## - Deinstalliere Debian MySQL Pakete.." >> ${logdir}/main.log + echo "## -" >> ${logdir}/main.log + echo "DEBIAN_FRONTEND=noninteractive apt-get remove --purge -q -y $INSTALLED_MYSQL_DEB" >> ${logdir}/main.log + DEBIAN_FRONTEND=noninteractive apt-get remove --purge -q -y $INSTALLED_MYSQL_DEB >> ${logdir}/main.log 2>&1 if [ "$?" = "0" ]; then echo_ok else @@ -1254,6 +1263,95 @@ if ! $UPDATE_MYSQL ; then fi fi + if [ "$DISTRIBUTION" = "Debian" ]; then + echononl "Deinstalliere Debian MariaDB Pakete.." + _INSTALLED_MARIADB_DEB=`dpkg -l | grep mariadb | grep -e "^i" | awk '{print$2}'` + INSTALLED_MARIADB_DEB= + for deb in $_INSTALLED_MARIADB_DEB ; do + INSTALLED_MARIADB_DEB="$INSTALLED_MARIADB_DEB $deb" + done + if [ -n "$INSTALLED_MARIADB_DEB" ]; then + echo "" >> ${logdir}/main.log + echo "## - Deinstalliere Debian MariaDB Pakete.." >> ${logdir}/main.log + echo "## -" >> ${logdir}/main.log + echo "DEBIAN_FRONTEND=noninteractive apt-get remove --purge -q -y $INSTALLED_MARIADB_DEB" >> ${logdir}/main.log + DEBIAN_FRONTEND=noninteractive apt-get remove --purge -q -y $INSTALLED_MARIADB_DEB >> ${logdir}/main.log 2>&1 + if [ "$?" = "0" ]; then + echo_ok + else + echo_failed + fatal Kann MariaDB Pakete nicht deinstalieren.. + fi + else + echo_skipped + fi + fi + + if [ "$DISTRIBUTION" = "Debian" ]; then + echononl "Deinstalliere Debian Percona (MySQL) Pakete.." + _INSTALLED_PERCONA_DEB=`dpkg -l | grep percona | grep -e "^i" | awk '{print$2}'` + INSTALLED_PERCONA_DEB= + for deb in $_INSTALLED_PERCONA_DEB ; do + INSTALLED_PERCONA_DEB="$INSTALLED_PERCONA_DEB $deb" + done + if [ -n "$INSTALLED_MARIADB_DEB" ]; then + echo "" >> ${logdir}/main.log + echo "## - Deinstalliere Debian Percona (MySQL) Pakete.." >> ${logdir}/main.log + echo "## -" >> ${logdir}/main.log + echo "DEBIAN_FRONTEND=noninteractive apt-get remove --purge -q -y $INSTALLED_PERCONA_DEB" >> ${logdir}/main.log + DEBIAN_FRONTEND=noninteractive apt-get remove --purge -q -y $INSTALLED_PERCONA_DEB >> ${logdir}/main.log 2>&1 + if [ "$?" = "0" ]; then + echo_ok + else + echo_failed + fatal "Kann Percona (MySQL) Pakete nicht deinstalieren.." + fi + else + echo_skipped + fi + fi + + if [ "$DISTRIBUTION" = "Debian" ]; then + echononl "Run 'apt-get autoremove'.." + echo "" >> ${logdir}/main.log + echo "## - Run 'apt-get autoremove.." >> ${logdir}/main.log + echo "## -" >> ${logdir}/main.log + echo "DEBIAN_FRONTEND=noninteractive apt-get -q -y autoremove" >> ${logdir}/main.log + DEBIAN_FRONTEND=noninteractive apt-get -q -y autoremove >> ${logdir}/main.log 2>&1 + if [ "$?" = "0" ]; then + echo_ok + else + echo_failed + error "Running 'apt-get autoremove' failed!" + fi + fi + + # - Install Percona apt repository + # - + _failed=false + echononl "Install Percona apt repository .." + echo "" >> ${logdir}/main.log + echo "## - Install Percona apt repository .." >> ${logdir}/main.log + echo "## -" >> ${logdir}/main.log + echo "wget -O /tmp/percona-release_0.1-5.$(lsb_release -sc)_all.deb https://repo.percona.com/apt/percona-release_0.1-5.$(lsb_release -sc)_all.deb" >> ${logdir}/main.log + wget -O /tmp/percona-release_0.1-5.$(lsb_release -sc)_all.deb https://repo.percona.com/apt/percona-release_0.1-5.$(lsb_release -sc)_all.deb >> ${logdir}/main.log 2>&1 + if [[ $? -ne 0 ]]; then + _failed=true + fi + echo "dpkg -i /tmp/percona-release_0.1-5.$(lsb_release -sc)_all.deb" >> ${logdir}/main.log 2>&1 + dpkg -i /tmp/percona-release_0.1-5.$(lsb_release -sc)_all.deb >> ${logdir}/main.log 2>&1 + if [[ $? -ne 0 ]]; then + _failed=true + fi + if $_failed ; then + echo_failed + install_additional_debian_packages=false + error "Install Percona apt repository failed!" + else + echo_ok + fi + + # if [[ -d /etc/mysql ]]; then # # echononl "Sichere/Verschiebe exitierendes Verzeichnis /etc/mysql .." @@ -1322,6 +1420,28 @@ if ! $UPDATE_MYSQL ; then deb_package_arr+=("$_debian_pkg") done + if $install_additional_debian_packages ; then + + if [[ "$MYSQL_DISTRIBUTION" = "MySQL" ]] ; then + for _debian_pkg in $_additional_debian_packages_mysql ; do + deb_package_arr+=("$_debian_pkg") + done + fi + + if [[ "$MYSQL_DISTRIBUTION" = "Percona" ]] ; then + for _debian_pkg in $_additional_debian_packages_percona ; do + deb_package_arr+=("$_debian_pkg") + done + fi + + if [[ "$MYSQL_DISTRIBUTION" = "MariaDB" ]] ; then + for _debian_pkg in $_additional_debian_packages_mariadb ; do + deb_package_arr+=("$_debian_pkg") + done + fi + + fi + for _debian_pkg in ${deb_package_arr[@]} ; do echononl "Installing $_debian_pkg .." @@ -1792,9 +1912,11 @@ if [[ "$MYSQL_DISTRIBUTION" = "MariaDB" ]]; then else cmake_options=" + . + -DCMAKE_BUILD_TYPE=RelWithDebInfo + -DBUILD_CONFIG=mysql_release -DCMAKE_INSTALL_PREFIX=$MYSQL_INSTALL_DIR -DMYSQL_DATADIR=$MYSQL_DATA_DIR - . -DINSTALL_SECURE_FILE_PRIVDIR=\"\" -DENABLED_LOCAL_INFILE=1 -DDOWNLOAD_BOOST=1 @@ -2681,7 +2803,7 @@ innodb_open_files = $(ulimit -Hn) ## - InnoDB stores the data and indexes for each newly created table in a ## - separate .ibd file, rather than in the system tablespace. ## - -innodb_file_per_table +innodb_file_per_table = 1 ## - innodb_data_home_dir ## - @@ -3498,7 +3620,7 @@ innodb_open_files = $(ulimit -Hn) ## - InnoDB stores the data and indexes for each newly created table in a ## - separate .ibd file, rather than in the system tablespace. ## - -innodb_file_per_table +innodb_file_per_table = 1 ## - innodb_data_home_dir ## -