From 4f61ae3788e745249e7f2bb2cb8459ee66da9799 Mon Sep 17 00:00:00 2001 From: Christoph Date: Tue, 26 Sep 2017 01:08:07 +0200 Subject: [PATCH] Redesing upgrade mode. --- .gitignore | 1 + install_mysql-5.7.sh | 836 ++++++++++++++++++++++++++----------------- 2 files changed, 511 insertions(+), 326 deletions(-) diff --git a/.gitignore b/.gitignore index 58ed64d..d2dc280 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ +*.swp /BAK/* /log* /mysql* diff --git a/install_mysql-5.7.sh b/install_mysql-5.7.sh index 4afdbc0..6d03693 100755 --- a/install_mysql-5.7.sh +++ b/install_mysql-5.7.sh @@ -153,13 +153,26 @@ else UPDATE_MYSQL=false fi +if $UPDATE_MYSQL ; then + echo "" + 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 + echo_ok + else + echo_failed + fatal "Getting current mysql version failed!" + fi + echo "" +fi -clear -echo -e "\033[21G\033[32mInstallationsscript für die Mysql Datenbank \033[m" -echo "" + +#clear +#echo -e "\033[21G\033[32mInstallationsscript für die Mysql Datenbank \033[m" +#echo "" echo -e "\033[32m--\033[m" echo "" -echo "Gib die Versionsnummer der MySQL-Distribution an." +echo "Gib die Versionsnummer der zu installierenden MySQL-Distribution an." echo "" MYSQL_VERSION= while [ "X$MYSQL_VERSION" = "X" ] @@ -211,6 +224,19 @@ do done +if $UPDATE_MYSQL ; then + echo "" + echononl "Ermittle Installations Verz. der existierenden MySQL Installation." + if [[ -d "$(dirname "$MYSQL_INSTALL_DIR")/mysql-$CURRENT_VERSION" ]]; then + MYSQL_CUR_INSTALL_DIR="$(dirname "$MYSQL_INSTALL_DIR")/mysql-$CURRENT_VERSION" + echo_ok + else + echo_failed + fatal "Kann Datenbank Verz. der installierten Version nicht finden!" + fi + echo "" +fi + echo "" echo -e "\033[32m--\033[m" echo "" @@ -226,6 +252,20 @@ do fi 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 + MYSQL_CUR_DATA_DIR="$(dirname "$MYSQL_DATA_DIR")/mysql-$CURRENT_VERSION" + echo_ok + else + echo_failed + fatal "Kann Datenbank Verz. der installierten Version nicht finden!" + fi + echo "" +fi + + echo "" echo -e "\033[32m--\033[m" echo "" @@ -295,12 +335,17 @@ do fi done -clear -echo -e "\033[21G\033[32mInstallationsscript für die Mysql Datenbank \033[m" +#clear +#echo -e "\033[21G\033[32mInstallationsscript für die Mysql Datenbank \033[m" + echo "" echo -e "\033[32m--\033[m" echo "" -echo "Gib ein Passwort für den root user an.." +if ! $UPDATE_MYSQL ; then + echo "Gib ein Passwort für den root user an.." +else + echo "Gib das 'root' Passwort der bestehenden Installation an" +fi echo "" _MYSQL_ROOT_PW_1="X" _MYSQL_ROOT_PW_2="Y" @@ -323,23 +368,37 @@ do if [ "$_MYSQL_ROOT_PW_1" != "$_MYSQL_ROOT_PW_2" ];then echo -e "\n\t\033[33m\033[1mPassworteingaben sind nicht identisch!\033[m\n" else - MYSQL_ROOT_PW=$_MYSQL_ROOT_PW_1 + if $UPDATE_MYSQL ; then + if $(pgrep mysqld_safe > /dev/null 2>&1) ; then + if $(mysql --user="root" --password="$_MYSQL_ROOT_PW_1" -N -s -e 'quit' > /dev/null 2>&1) ; then + MYSQL_ROOT_PW=$_MYSQL_ROOT_PW_1 + else + echo -e "\n\t\033[33m\033[1mFalsches Passwort\033[m\n" + _MYSQL_ROOT_PW_1="" + fi + else + MYSQL_ROOT_PW=$_MYSQL_ROOT_PW_1 + fi + else + MYSQL_ROOT_PW=$_MYSQL_ROOT_PW_1 + fi fi done + if $UPDATE_MYSQL ; then - __SYMLINK_INITSCRIPT=nein - __SYMLINK_INSTALL_DIR=nein - __SYMLINK_DATA_DIR=nein -else +# __SYMLINK_INITSCRIPT=nein +# __SYMLINK_INSTALL_DIR=nein +# __SYMLINK_DATA_DIR=nein +#else __SYMLINK_INITSCRIPT=ja __SYMLINK_INSTALL_DIR=ja __SYMLINK_DATA_DIR=ja fi -clear -echo -e "\033[21G\033[32mInstallationsscript für die Mysql Datenbank \033[m" -echo "" +#clear +#echo -e "\033[21G\033[32mInstallationsscript für die Mysql Datenbank \033[m" +#echo "" echo -e "\033[32m--\033[m" echo "" echo "Symlinks:" @@ -447,7 +506,12 @@ echo "" if ! $UPDATE_MYSQL ; then echo -e "-- \033[33m\033[1mNeusistallation\033[m --" else - echo -e "-- \033[33m\033[1mUpdate\033[m (Erstzen einer vorhandenen Installation) --" + echo -e "-- \033[33m\033[1mUpdate\033[m (Ersetzen einer vorhandenen Installation) --" + echo "" + echo "Current MySQL Version.....: $CURRENT_VERSION" + echo "Current data dir..........: $MYSQL_CUR_DATA_DIR" + echo "Current installation dir..: $MYSQL_CUR_INSTALL_DIR" + echo "" fi echo "" echo "Linuxdistribution.........: $DISTRIBUTION" @@ -535,7 +599,12 @@ echo "## -" >> ${logdir}/main.log if ! $UPDATE_MYSQL ; then echo "## - Neusistallation" >> ${logdir}/main.log else - echo "## - Update (Erstzen einer vorhandenen Installation)" >> ${logdir}/main.log + echo "## - Update (Ersetzen einer vorhandenen Installation)" >> ${logdir}/main.log + echo "## -" >> ${logdir}/main.log + echo "## - Current MySQL Version.....: $CURRENT_VERSION" >> ${logdir}/main.log + echo "## - Current installation dir..: $MYSQL_CUR_INSTALL_DIR" >> ${logdir}/main.log + echo "## - Current data dir..........: $MYSQL_CUR_DATA_DIR" >> ${logdir}/main.log + echo "## -" >> ${logdir}/main.log fi echo "## -" >> ${logdir}/main.log echo "## - Linuxdistribution.........: $DISTRIBUTION" >> ${logdir}/main.log @@ -560,6 +629,11 @@ echo "" >> ${logdir}/main.log echo "" >> ${logdir}/main.log echo "UPDATE_MYSQL=$UPDATE_MYSQL" >> ${logdir}/main.log +if ! $UPDATE_MYSQL ; then + echo "CURRENT_VERSION=$CURRENT_VERSION" >> ${logdir}/main.log + echo "MYSQL_CUR_DATA_DIR=$MYSQL_CUR_DATA_DIR" >> ${logdir}/main.log + echo "MYSQL_CUR_INSTALL_DIR=$MYSQL_CUR_INSTALL_DIR" >> ${logdir}/main.log +fi echo "" >> ${logdir}/main.log echo "DISTRIBUTION=$DISTRIBUTION" >> ${logdir}/main.log echo "" >> ${logdir}/main.log @@ -586,37 +660,71 @@ elif [ -f /etc/init.d/mysql ];then _MYSQL_INITSCRIPT="mysql" fi +if [[ -z "$_MYSQL_INITSCRIPT" ]] && $UPDATE_MYSQL ; then + fatal "Kein start/stop script gefunden.." +fi + +echo "" + +## - Stop MySQL Service if running +## - +echononl "Stop MySQL Service.." +PID=$(ps aux | grep "mysqld_safe" | grep -v grep | awk '{print$2}') +if [[ "X${PID}X" != "XX" ]];then + if $SYSTEMD_EXISTS ; then + echo "" >> ${logdir}/main.log + echo "systemctl stop ${_MYSQL_INITSCRIPT}" >> ${logdir}/main.log + systemctl stop ${_MYSQL_INITSCRIPT} >> ${logdir}/main.log 2>&1 + else + echo "" >> ${logdir}/main.log + echo "/etc/init.d/$_MYSQL_INITSCRIPT stop" >> ${logdir}/main.log + /etc/init.d/$_MYSQL_INITSCRIPT stop >> ${logdir}/main.log 2>&1 + fi + + sleep 5 + + PID=`ps aux | grep "mysqld_safe" | grep -v grep | awk '{print$2}'` + if [[ "X${PID}X" = "XX" ]]; then + echo_ok + else + echo_failed + + PID=`ps aux | grep "mysqld" | grep -v grep | awk '{print$2}'` + echononl "Abbruch (kill -9) aller mysqld Prozesse.." + echo "" >> ${logdir}/main.log + echo "kill -9 $PID" >> ${logdir}/main.log 2>&1 + kill -9 $PID + if [ "$?" = "0" ]; then + echo_ok + else + echo_failed + fi + fi +else + echo_skipped +fi + + +echononl "Verschiebe exitierendes MySQL Datenbank-Verzeichnis ..." +if [ -d $MYSQL_DATA_DIR ]; then + echo "" >> ${logdir}/main.log + echo "mv $MYSQL_DATA_DIR ${MYSQL_DATA_DIR}.`date +\"%Y%m%d-%H%M\"`" >> ${logdir}/main.log + mv $MYSQL_DATA_DIR ${MYSQL_DATA_DIR}.`date +"%Y%m%d-%H%M"` >> ${logdir}/main.log 2>&1 + if [ "$?" = "0" ]; then + echo_ok + else + echo_failed + fatal Kann Datenbank-Verzeichnis \"${MYSQL_DATA_DIR}\" nicht verschieben.. + fi +else + echo_skipped +fi + + if ! $UPDATE_MYSQL ; then if [ "X${_MYSQL_INITSCRIPT}X" != "XX" ];then - PID=`ps aux | grep "mysqld_safe" | grep -v grep | awk '{print$2}'` - if [ "X${PID}X" != "XX" ];then - echononl "Stoppe mysql Server.." - echo "" >> ${logdir}/main.log - echo "/etc/init.d/$_MYSQL_INITSCRIPT stop" >> ${logdir}/main.log - /etc/init.d/$_MYSQL_INITSCRIPT stop >> ${logdir}/main.log 2>&1 - sleep 5 - PID=`ps aux | grep "mysqld_safe" | grep -v grep | awk '{print$2}'` - if [ "X${PID}X" = "XX" ]; then - echo_ok - else - echo_failed - - PID=`ps aux | grep "mysqld" | grep -v grep | awk '{print$2}'` - echononl "Abbruch (kill -9) aller mysqld Prozesse.." - echo "" >> ${logdir}/main.log - echo "kill -9 $PID" >> ${logdir}/main.log 2>&1 - kill -9 $PID - if [ "$?" = "0" ]; then - echo_ok - else - echo_failed - fi - fi - - fi - ## - Entferne symbolische Links aus den Run Level Verzeichnissen ## - echononl "Entferne symbolische Links aus den Run Level Verzeichnissen" @@ -639,7 +747,7 @@ if ! $UPDATE_MYSQL ; then echo_ok else echo_failed - fatal "Kann Mexistierendes Initskript nicht entfernen." + fatal "Kann existierendes Initskript nicht entfernen." fi fi fi @@ -761,59 +869,60 @@ if ! $UPDATE_MYSQL ; then # fi - echononl "Adding Group \"$MYSQL_GROUP\".." - if cat /etc/group | grep -e "^${MYSQL_GROUP}:" > /dev/null 2>&1 ; then - echo_skipped - else - groupadd -r $MYSQL_GROUP > ${logdir}/groupadd.log 2>&1 - if [ "$?" = "0" ]; then - echo_ok - else - echo_failed - fatal Kann Gruppe \"${MYSQL_GROUP}\" nicht erstellen.. - fi - fi - - echononl "Adding User \"$MYSQL_USER\".." - if id -u $MYSQL_USER > /dev/null 2>&1; then - echo_skipped - else - useradd -r -M -d /noexistent -s /bin/false -g $MYSQL_GROUP $MYSQL_USER > ${logdir}/useradd.log 2>&1 - if [ "$?" = "0" ]; then - echo_ok - else - echo_failed - fatal Kann User \"${MYSQL_USER}\" nicht erstellen.. - fi - fi -fi - - -if [ -d $MYSQL_DATA_DIR ]; then - echononl "Verschiebe exitierendes MySQL Datenbank-Verzeichnis ..." + echononl "Erstelle Datenbank-Verzeichnis \"$MYSQL_DATA_DIR\".." echo "" >> ${logdir}/main.log - echo "mv $MYSQL_DATA_DIR ${MYSQL_DATA_DIR}.`date +\"%Y%m%d-%H%M\"`" >> ${logdir}/main.log - mv $MYSQL_DATA_DIR ${MYSQL_DATA_DIR}.`date +"%Y%m%d-%H%M"` >> ${logdir}/main.log 2>&1 + echo "mkdir -p $MYSQL_DATA_DIR" >> ${logdir}/main.log + mkdir -p $MYSQL_DATA_DIR >> ${logdir}/main.log 2>&1 if [ "$?" = "0" ]; then echo_ok else echo_failed - fatal Kann Datenbank-Verzeichnis \"${MYSQL_DATA_DIR}\" nicht verschieben.. + fatal Kann Datenbank-Verzeichnis \"${MYSQL_DATA_DIR}\" nicht erstellen.. + fi + +else # if ! $UPDATE_MYSQL + + echononl "Kopiere exitierendes MySQL Datenbank-Verzeichnis ..." + echo "" >> ${logdir}/main.log + echo "cp -a \"$MYSQL_CUR_DATA_DIR\" \"$MYSQL_DATA_DIR\"" >> ${logdir}/main.log + cp -a "$MYSQL_CUR_DATA_DIR" "$MYSQL_DATA_DIR" >> ${logdir}/main.log + if [ "$?" = "0" ]; then + echo_ok + else + echo_failed + fatal "Kopieren \"$MYSQL_CUR_DATA_DIR\" --> \"${MYSQL_DATA_DIR}\" fehlgeschlagen.." + fi + +fi # if ! $UPDATE_MYSQL + + +echononl "Adding Group \"$MYSQL_GROUP\".." +if cat /etc/group | grep -e "^${MYSQL_GROUP}:" > /dev/null 2>&1 ; then + echo_skipped +else + groupadd -r $MYSQL_GROUP > ${logdir}/groupadd.log 2>&1 + if [ "$?" = "0" ]; then + echo_ok + else + echo_failed + fatal Kann Gruppe \"${MYSQL_GROUP}\" nicht erstellen.. fi fi - -echononl "Erstelle Datenbank-Verzeichnis \"$MYSQL_DATA_DIR\".." -echo "" >> ${logdir}/main.log -echo "mkdir -p $MYSQL_DATA_DIR" >> ${logdir}/main.log -mkdir -p $MYSQL_DATA_DIR >> ${logdir}/main.log 2>&1 -if [ "$?" = "0" ]; then - echo_ok +echononl "Adding User \"$MYSQL_USER\".." +if id -u $MYSQL_USER > /dev/null 2>&1; then + echo_skipped else - echo_failed - fatal Kann Datenbank-Verzeichnis \"${MYSQL_DATA_DIR}\" nicht erstellen.. + useradd -r -M -d /noexistent -s /bin/false -g $MYSQL_GROUP $MYSQL_USER > ${logdir}/useradd.log 2>&1 + if [ "$?" = "0" ]; then + echo_ok + else + echo_failed + fatal Kann User \"${MYSQL_USER}\" nicht erstellen.. + fi fi + echononl "Setze Besitzer \"${MYSQL_USER}:${MYSQL_GROUP}\" für Datenbank-Verzeichnis" echo "" >> ${logdir}/main.log echo "chown -R ${MYSQL_USER}:${MYSQL_GROUP} ${MYSQL_DATA_DIR}" >> ${logdir}/main.log @@ -999,6 +1108,98 @@ else echo_skipped fi +## - Symlink Installationsverzeichnis (i.d.R. /usr/local/mysql) +## - +if $SYMLINK_INSTALL_DIR ; then + + echononl "Entferne vorhandenen Symlink `dirname $MYSQL_INSTALL_DIR`/mysql.." + if [[ -h "$(dirname $MYSQL_INSTALL_DIR)/mysql" ]]; then + echo "" >> ${logdir}/main.log + echo "rm \"$(dirname $MYSQL_INSTALL_DIR)/mysql\"" >> ${logdir}/main.log + rm "$(dirname $MYSQL_INSTALL_DIR)/mysql" >> ${logdir}/main.log 2>&1 + if [ "$?" = "0" ]; then + echo_ok + else + echo_failed + error Kann Symlink `dirname $MYSQL_INSTALL_DIR`/mysql nicht entfernen.. + fi + else + echo_skipped + fi + + echononl "Verschiebe Verzeichnis '$(dirname $MYSQL_INSTALL_DIR)/mysql' ..." + if [ -d "$(dirname $MYSQL_INSTALL_DIR)/mysql" ]; then + echo "" >> ${logdir}/main.log + echo "mv \"$(dirname $MYSQL_INSTALL_DIR)/mysql)\" \"$(dirname $MYSQL_INSTALL_DIR)/mysql.$(date +"%Y%m%d-%H%M")" \ + >> ${logdir}/main.log + mv "$(dirname $MYSQL_INSTALL_DIR)/mysql" "$(dirname $MYSQL_INSTALL_DIR)/mysql.$(date +"%Y%m%d-%H%M")" \ + >> ${logdir}/main.log 2>&1 + if [ "$?" = "0" ]; then + echo_ok + else + echo_failed + error Kann Installationsverzeichnis \"${MYSQL_INSTALL_DIR}\" nicht verschieben.. + fi + else + echo_skipped + fi + + echononl "Erstelle Symlink $(dirname $MYSQL_INSTALL_DIR)/mysql --> $MYSQL_INSTALL_DIR" + echo "" >> ${logdir}/main.log + echo "ln -s \"$(basename $MYSQL_INSTALL_DIR)\" \"$(dirname $MYSQL_INSTALL_DIR)/mysql\"" >> ${logdir}/main.log + ln -s "$(basename $MYSQL_INSTALL_DIR)" "$(dirname $MYSQL_INSTALL_DIR)/mysql" >> ${logdir}/main.log 2>&1 + if [ "$?" = "0" ]; then + echo_ok + else + echo_failed + error Kann Symlink `basename $MYSQL_INSTALL_DIR` --> `dirname $MYSQL_INSTALL_DIR`/mysql nicht erstellen .. + fi +fi + +## - Symlink Datenverzeichnis +## - +if $SYMLINK_DATA_DIR ; then + + if [ -h "$(dirname $MYSQL_DATA_DIR)/mysql" ]; then + echononl "Entferne vorhandenen Symlink '$(dirname $MYSQL_DATA_DIR)/mysql'.." + echo "" >> ${logdir}/main.log + echo "rm $(dirname $MYSQL_DATA_DIR)/mysql" >> ${logdir}/main.log + rm $(dirname $MYSQL_DATA_DIR)/mysql >> ${logdir}/main.log 2>&1 + if [ "$?" = "0" ]; then + echo_ok + else + echo_failed + error Kann Symlink `dirname $MYSQL_DATA_DIR`/mysql nicht entfernen.. + fi + fi + + if [ -d "$(dirname $MYSQL_DATA_DIR)/mysql" ]; then + echononl "Verschiebe Verzeichnis '$(dirname $MYSQL_DATA_DIR)/mysql' ..." + echo "" >> ${logdir}/main.log + echo "mv \"$(dirname $MYSQL_DATA_DIR)/mysql\" \"$(dirname $MYSQL_DATA_DIR)/mysql.$(date +"%Y%m%d-%H%M")" \ + >> ${logdir}/main.log + mv "$(dirname $MYSQL_DATA_DIR)/mysql" "$(dirname $MYSQL_DATA_DIR)/mysql.$(date +"%Y%m%d-%H%M")" \ + >> ${logdir}/main.log 2>&1 + if [ "$?" = "0" ]; then + echo_ok + else + echo_failed + error Kann Datenverzeichnis \"${MYSQL_DATA_DIR}\" nicht verschieben.. + fi + fi + + echononl "Erstelle Symlink `dirname $MYSQL_DATA_DIR`/mysql --> $MYSQL_DATA_DIR" + echo "" >> ${logdir}/main.log + echo "ln -s \"$(basename $MYSQL_DATA_DIR)\" \"$(dirname $MYSQL_DATA_DIR)/mysql\"" >> ${logdir}/main.log + ln -s "$(basename $MYSQL_DATA_DIR)" "$(dirname $MYSQL_DATA_DIR)/mysql" >> ${logdir}/main.log 2>&1 + if [ "$?" = "0" ]; then + echo_ok + else + echo_failed + error "Kann Symlink $(basename $MYSQL_DATA_DIR) --> $(dirname $MYSQL_DATA_DIR)/mysql nicht erstellen .." + fi +fi + if $SYMLINK_INITSCRIPT ; then @@ -1018,7 +1219,8 @@ if $SYMLINK_INITSCRIPT ; then echononl "Erstelle Symlink \"/etc/init.d/mysql.server\".." echo "" >> ${logdir}/main.log echo "ln -s $MYSQL_INSTALL_DIR/support-files/mysql.server /etc/init.d/mysql.server" >> ${logdir}/main.log - ln -s $MYSQL_INSTALL_DIR/support-files/mysql.server /etc/init.d/mysql.server >> ${logdir}/main.log 2>&1 + echo "ln -s \"$(dirname $MYSQL_INSTALL_DIR)/mysql/support-files/mysql.server\" \"/etc/init.d/mysql.server\"" >> ${logdir}/main.log + ln -s "$(dirname $MYSQL_INSTALL_DIR)/mysql/support-files/mysql.server" /etc/init.d/mysql.server >> ${logdir}/main.log 2>&1 if [ "$?" = "0" ]; then echo_ok else @@ -1034,99 +1236,11 @@ if $SYMLINK_INITSCRIPT ; then echo_ok else echo_failed - fatal "Kann \"ulimit\" im Startscript nicht setzen /etc/init.d/mysql.server nicht setzen.." + error "Kann \"ulimit\" im Startscript nicht setzen /etc/init.d/mysql.server nicht setzen.." fi fi -## - Symlink Installationsverzeichnis (i.d.R. /usr/local/mysql) -## - -if $SYMLINK_INSTALL_DIR ; then - - if [ -h `dirname $MYSQL_INSTALL_DIR`/mysql ]; then - echononl "Entferne vorhandenen Symlink `dirname $MYSQL_INSTALL_DIR`/mysql.." - echo "" >> ${logdir}/main.log - echo "rm `dirname $MYSQL_INSTALL_DIR`/mysql" >> ${logdir}/main.log - rm `dirname $MYSQL_INSTALL_DIR`/mysql >> ${logdir}/main.log 2>&1 - if [ "$?" = "0" ]; then - echo_ok - else - echo_failed - error Kann Symlink `dirname $MYSQL_INSTALL_DIR`/mysql nicht entfernen.. - fi - fi - - if [ -d `dirname $MYSQL_INSTALL_DIR`/mysql ]; then - echononl "Verschiebe Verzeichnis `dirname $MYSQL_INSTALL_DIR`/mysql ..." - echo "" >> ${logdir}/main.log - echo "mv `dirname $MYSQL_INSTALL_DIR`/mysql `dirname $MYSQL_INSTALL_DIR`/mysql.`date +\"%Y%m%d-%H%M\"`" \ - >> ${logdir}/main.log - mv `dirname $MYSQL_INSTALL_DIR`/mysql `dirname $MYSQL_INSTALL_DIR`/mysql.`date +"%Y%m%d-%H%M"` \ - >> ${logdir}/main.log 2>&1 - if [ "$?" = "0" ]; then - echo_ok - else - echo_failed - error Kann Installationsverzeichnis \"${MYSQL_INSTALL_DIR}\" nicht verschieben.. - fi - fi - - echononl "Erstelle Symlink `dirname $MYSQL_INSTALL_DIR`/mysql --> $MYSQL_INSTALL_DIR" - echo "" >> ${logdir}/main.log - echo "ln -s `basename $MYSQL_INSTALL_DIR` `dirname $MYSQL_INSTALL_DIR`/mysql" >> ${logdir}/main.log - ln -s `basename $MYSQL_INSTALL_DIR` `dirname $MYSQL_INSTALL_DIR`/mysql >> ${logdir}/main.log 2>&1 - if [ "$?" = "0" ]; then - echo_ok - else - echo_failed - error Kann Symlink `basename $MYSQL_INSTALL_DIR` --> `dirname $MYSQL_INSTALL_DIR`/mysql nicht erstellen .. - fi -fi - -## - Symlink Datenverzeichnis -## - -if $SYMLINK_DATA_DIR ; then - - if [ -h `dirname $MYSQL_DATA_DIR`/mysql ]; then - echononl "Entferne vorhandenen Symlink `dirname $MYSQL_DATA_DIR`/mysql.." - echo "" >> ${logdir}/main.log - echo "rm `dirname $MYSQL_DATA_DIR`/mysql" >> ${logdir}/main.log - rm `dirname $MYSQL_DATA_DIR`/mysql >> ${logdir}/main.log 2>&1 - if [ "$?" = "0" ]; then - echo_ok - else - echo_failed - error Kann Symlink `dirname $MYSQL_DATA_DIR`/mysql nicht entfernen.. - fi - fi - - if [ -d `dirname $MYSQL_DATA_DIR`/mysql ]; then - echononl "Verschiebe Verzeichnis `dirname $MYSQL_DATA_DIR`/mysql ..." - echo "" >> ${logdir}/main.log - echo "mv `dirname $MYSQL_DATA_DIR`/mysql `dirname $MYSQL_DATA_DIR`/mysql.`date +\"%Y%m%d-%H%M\"`" \ - >> ${logdir}/main.log - mv `dirname $MYSQL_DATA_DIR`/mysql `dirname $MYSQL_DATA_DIR`/mysql.`date +"%Y%m%d-%H%M"` \ - >> ${logdir}/main.log 2>&1 - if [ "$?" = "0" ]; then - echo_ok - else - echo_failed - error Kann Datenverzeichnis \"${MYSQL_DATA_DIR}\" nicht verschieben.. - fi - fi - - echononl "Erstelle Symlink `dirname $MYSQL_DATA_DIR`/mysql --> $MYSQL_DATA_DIR" - echo "" >> ${logdir}/main.log - echo "ln -s `basename $MYSQL_DATA_DIR` `dirname $MYSQL_DATA_DIR`/mysql" >> ${logdir}/main.log - ln -s `basename $MYSQL_DATA_DIR` `dirname $MYSQL_DATA_DIR`/mysql >> ${logdir}/main.log 2>&1 - if [ "$?" = "0" ]; then - echo_ok - else - echo_failed - error Kann Symlink `basename $MYSQL_DATA_DIR` --> `dirname $MYSQL_DATA_DIR`/mysql nicht erstellen .. - fi -fi - echononl "Füge `dirname $MYSQL_INSTALL_DIR`/mysql/bin zur PATH Variable hinzu .." if [ -f /etc/profile ]; then @@ -1178,26 +1292,30 @@ fi echo echononl "Richte MySQL Systemtabellen ein.." -cd $MYSQL_INSTALL_DIR -echo "" >> ${logdir}/main.log -echo "./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 " --language=$MYSQL_INSTALL_DIR/share/german" >> ${logdir}/main.log -echo "" >> ${logdir}/main.log +if ! $UPDATE_MYSQL ; then + cd $MYSQL_INSTALL_DIR + echo "" >> ${logdir}/main.log + echo "./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 " --language=$MYSQL_INSTALL_DIR/share/german" >> ${logdir}/main.log + echo "" >> ${logdir}/main.log -./bin/mysqld --initialize-insecure \ - --user=$MYSQL_USER \ - --basedir=$MYSQL_INSTALL_DIR \ - --datadir=$MYSQL_DATA_DIR \ - --lc-messages-dir=$MYSQL_INSTALL_DIR/share/german \ - >> ${logdir}/main.log 2>&1 -if [ "$?" = "0" ]; then - echo_ok + ./bin/mysqld --initialize-insecure \ + --user=$MYSQL_USER \ + --basedir=$MYSQL_INSTALL_DIR \ + --datadir=$MYSQL_DATA_DIR \ + --lc-messages-dir=$MYSQL_INSTALL_DIR/share/german \ + >> ${logdir}/main.log 2>&1 + if [ "$?" = "0" ]; then + echo_ok + else + echo_failed + fatal Das Einrichten der MySQL Systemtabellen ist fehlgeschlagen.. + fi else - echo_failed - fatal Das Einrichten der MySQL Systemtabellen ist fehlgeschlagen.. + echo_skipped fi echononl "Create directory \"mysql-files\".." @@ -1251,8 +1369,8 @@ else fi +echononl "Sichere Konfigurationsdatei.." if [ -f ${MYSQL_INSTALL_DIR}/my.cnf ]; then - echononl "Sichere Konfigurationsdatei.." echo "" >> ${logdir}/main.log echo "${MYSQL_INSTALL_DIR}/my.cnf ${MYSQL_INSTALL_DIR}" >> ${logdir}/main.log mv ${MYSQL_INSTALL_DIR}/my.cnf ${MYSQL_INSTALL_DIR}/my.cnf.ORIG @@ -1262,22 +1380,44 @@ if [ -f ${MYSQL_INSTALL_DIR}/my.cnf ]; then echo_failed error Konnte Konfigurationsdatei ${MYSQL_INSTALL_DIR}/my.cnf nicht sichern.. fi +else + echo_skipped fi -echononl "Erstelle Konfigurationsdatei ${MYSQL_INSTALL_DIR}/my.cnf.." +_new_cnf_needed=false +if $UPDATE_MYSQL ; then + echononl "Copy 'my.cnf from old installation to the new one.." + echo "" >> ${logdir}/main.log + echo "cp -a \"${MYSQL_CUR_INSTALL_DIR}/my.cnf\" \"${MYSQL_INSTALL_DIR}/my.cnf\"" >> ${logdir}/main.log + if [[ -f "${MYSQL_CUR_INSTALL_DIR}/my.cnf" ]] ; then + cp -a "${MYSQL_CUR_INSTALL_DIR}/my.cnf" "${MYSQL_INSTALL_DIR}/my.cnf" >> ${logdir}/main.log + if [ "$?" = "0" ]; then + echo_ok + else + echo_failed + _new_cnf_needed=true + error "Konnte Konfigurationsdatei 'my.cnf' nicht vom alten in das neue Installations Verz.kopieren.." + fi + else + _new_cnf_needed=true + fi +fi -echo "" >> ${logdir}/main.log -echo "_number_cpus=`grep "^processor" /proc/cpuinfo | sort -u | wc -l`" >> ${logdir}/main.log -_number_cpus=`grep "^processor" /proc/cpuinfo | sort -u | wc -l` +if ! $UPDATE_MYSQL || $_new_cnf_needed ; then + echononl "Erstelle Konfigurationsdatei ${MYSQL_INSTALL_DIR}/my.cnf.." -echo "" >> ${logdir}/main.log -echo "let MYSQL_THREAD_CONCURRENCY=$_number_cpus*2" >> ${logdir}/main.log -let MYSQL_THREAD_CONCURRENCY=$_number_cpus*2 + echo "" >> ${logdir}/main.log + echo "_number_cpus=`grep "^processor" /proc/cpuinfo | sort -u | wc -l`" >> ${logdir}/main.log + _number_cpus=`grep "^processor" /proc/cpuinfo | sort -u | wc -l` -echo "" >> ${logdir}/main.log -echo "\$MYSQL_THREAD_CONCURRENCY = $MYSQL_THREAD_CONCURRENCY" >> ${logdir}/main.log + echo "" >> ${logdir}/main.log + echo "let MYSQL_THREAD_CONCURRENCY=$_number_cpus*2" >> ${logdir}/main.log + let MYSQL_THREAD_CONCURRENCY=$_number_cpus*2 -cat << EOF > ${MYSQL_INSTALL_DIR}/my.cnf + echo "" >> ${logdir}/main.log + echo "\$MYSQL_THREAD_CONCURRENCY = $MYSQL_THREAD_CONCURRENCY" >> ${logdir}/main.log + + cat << EOF > ${MYSQL_INSTALL_DIR}/my.cnf # Example MySQL config file for very large systems. # # This is for a large system with memory of 1G-2G where the system runs mainly @@ -2031,39 +2171,40 @@ ft_min_word_len = 3 interactive-timeout EOF -if [ "$?" = "0" ]; then - echo_ok -else - echo_failed - error Konnte Konfigurationsdatei \"${MYSQL_INSTALL_DIR}/my.cnf\" nicht erstellen.. -fi - -echononl "Kopiere \"stopwords_utf8_iso8859-15.txt\" -> ${MYSQL_INSTALL_DIR}.." -if [ -f "${MYSQL_SRC_BASE_DIR}/stopwords_utf8_iso8859-15.txt" ];then - cp ${MYSQL_SRC_BASE_DIR}/stopwords_utf8_iso8859-15.txt ${MYSQL_INSTALL_DIR} if [ "$?" = "0" ]; then echo_ok - - echononl "Aktiviere Stopword Datei.." - echo "" >> ${logdir}/main.log - echo "perl -i -n -p -e \"s/^(\s*#\s*)(ft_stopword_file.*)/#\1\2\n\2/\" /usr/local/mysql/my.cnf" >> ${logdir}/main.log - perl -i -n -p -e "s/^(\s*#\s*)(ft_stopword_file.*)/#\1\2\n\2/" /usr/local/mysql/my.cnf >> ${logdir}/main.log 2>&1 - if [ "$?" = "0" ]; then - echo_ok - else - echo_failed - warn "Konnte Stopword Datei \"stopwords_utf8_iso8859-15.txt\" nicht aktivieren." - fi - else echo_failed - warn "Konnte stopwords_utf8_iso8859-15.txt nicht nach ${MYSQL_INSTALL_DIR} kopieren" + error Konnte Konfigurationsdatei \"${MYSQL_INSTALL_DIR}/my.cnf\" nicht erstellen.. fi -else - echo_skipped - warn "Konnte ${MYSQL_SRC_BASE_DIR}/stopwords_utf8_iso8859-15.txt finden." -fi + echononl "Kopiere \"stopwords_utf8_iso8859-15.txt\" -> ${MYSQL_INSTALL_DIR}.." + if [ -f "${MYSQL_SRC_BASE_DIR}/stopwords_utf8_iso8859-15.txt" ];then + cp ${MYSQL_SRC_BASE_DIR}/stopwords_utf8_iso8859-15.txt ${MYSQL_INSTALL_DIR} + if [ "$?" = "0" ]; then + echo_ok + + echononl "Aktiviere Stopword Datei.." + echo "" >> ${logdir}/main.log + echo "perl -i -n -p -e \"s/^(\s*#\s*)(ft_stopword_file.*)/#\1\2\n\2/\" /usr/local/mysql/my.cnf" >> ${logdir}/main.log + perl -i -n -p -e "s/^(\s*#\s*)(ft_stopword_file.*)/#\1\2\n\2/" /usr/local/mysql/my.cnf >> ${logdir}/main.log 2>&1 + if [ "$?" = "0" ]; then + echo_ok + else + echo_failed + warn "Konnte Stopword Datei \"stopwords_utf8_iso8859-15.txt\" nicht aktivieren." + fi + + else + echo_failed + warn "Konnte stopwords_utf8_iso8859-15.txt nicht nach ${MYSQL_INSTALL_DIR} kopieren" + fi + else + echo_skipped + warn "Konnte ${MYSQL_SRC_BASE_DIR}/stopwords_utf8_iso8859-15.txt finden." + fi + +fi #echononl "Kopiere Startscript nach /etc/init.d/mysql.server.." #echo "" >> ${logdir}/main.log @@ -2101,8 +2242,6 @@ if ! $UPDATE_MYSQL ; then if $SYSTEMD_EXISTS ; then echo "systemctl enable mysql.server" >> ${logdir}/main.log systemctl enable mysql.server >> ${logdir}/main.log 2>&1 - echo "systemctl daemon-reload" >> ${logdir}/main.log - systemctl daemon-reload >> ${logdir}/main.log 2>&1 else echo "update-rc.d mysql.server defaults" >> ${logdir}/main.log update-rc.d mysql.server defaults >> ${logdir}/main.log 2>&1 @@ -2117,28 +2256,43 @@ if ! $UPDATE_MYSQL ; then error "Konnte MySQL Init Script Links (autom. boot) nicht erstellen.." fi fi +fi - echononl "Starte MySQL Datenbankserver.." +echononl "Run 'systemctl daemon-reload' to reload units." +if $SYSTEMD_EXISTS ; then echo "" >> ${logdir}/main.log - if $SYSTEMD_EXISTS ; then - echo "systemctl start mysql.server" >> ${logdir}/main.log - systemctl start mysql.server >> ${logdir}/main.log 2>&1 - else - echo "/etc/init.d/mysql.server start" >> ${logdir}/main.log - /etc/init.d/mysql.server start >> ${logdir}/main.log 2>&1 - fi + echo "systemctl daemon-reload" >> ${logdir}/main.log + systemctl daemon-reload >> ${logdir}/main.log 2>&1 if [ "$?" = "0" ]; then echo_ok else echo_failed - error Konnte MySQL Datenbankserver nicht starten.. + error "Run 'systemctl daemon-reload' failed!" fi +else + echo_skipped fi -echononl "Run \"mysql_upgrade -uroot\".." +echononl "Starte MySQL Datenbankserver.." echo "" >> ${logdir}/main.log -echo "${MYSQL_INSTALL_DIR}/bin/mysql_upgrade -uroot" >> ${logdir}/main.log -${MYSQL_INSTALL_DIR}/bin/mysql_upgrade -uroot >> ${logdir}/main.log 2>&1 +if $SYSTEMD_EXISTS ; then + echo "systemctl start mysql.server" >> ${logdir}/main.log + systemctl start mysql.server >> ${logdir}/main.log 2>&1 +else + echo "/etc/init.d/mysql.server start" >> ${logdir}/main.log + /etc/init.d/mysql.server start >> ${logdir}/main.log 2>&1 +fi +if [ "$?" = "0" ]; then + echo_ok +else + echo_failed + error Konnte MySQL Datenbankserver nicht starten.. +fi + +echononl "Run \"mysql_upgrade -uroot\" - this may take some (long) time.." +echo "" >> ${logdir}/main.log +echo "${MYSQL_INSTALL_DIR}/bin/mysql_upgrade -uroot -p$MYSQL_ROOT_PW" >> ${logdir}/main.log +${MYSQL_INSTALL_DIR}/bin/mysql_upgrade -uroot -p$MYSQL_ROOT_PW >> ${logdir}/main.log 2>&1 if [ "$?" = "0" ]; then echo_ok else @@ -2146,90 +2300,119 @@ else error "Script \"mysql_upgrade -uroot\" failed!" fi -echo "" >> ${logdir}/main.log -echo "${MYSQL_INSTALL_DIR}/bin/mysql -uroot mysql -N -s -e \"DELETE FROM user where User = ''\"" >> ${logdir}/main.log -${MYSQL_INSTALL_DIR}/bin/mysql -uroot mysql -N -s -e "DELETE FROM user where User = ''" >> ${logdir}/main.log 2>&1 +if ! $UPDATE_MYSQL ; then -echononl "Setze root Passwort für den MySQL Zugang" -echo "" >> ${logdir}/main.log -echo "${MYSQL_INSTALL_DIR}/bin/mysql -uroot mysql -N -s -e \"UPDATE user set authentication_string = password('$MYSQL_ROOT_PW')\"" >> ${logdir}/main.log -${MYSQL_INSTALL_DIR}/bin/mysql -uroot mysql -N -s -e "UPDATE user set authentication_string = password('$MYSQL_ROOT_PW')" \ - >> ${logdir}/main.log 2>&1 -if [ "$?" = "0" ]; then - echo_ok -else - echo_failed - error Konnte MySQL root Zugang fü den MySQL Server nicht setzen.. -fi + ## - Delete rows with empty 'User' from table mysql.user + ## - + echo "" >> ${logdir}/main.log + echo "${MYSQL_INSTALL_DIR}/bin/mysql -uroot mysql -N -s -e \"DELETE FROM user where User = ''\"" >> ${logdir}/main.log + ${MYSQL_INSTALL_DIR}/bin/mysql -uroot mysql -N -s -e "DELETE FROM user where User = ''" >> ${logdir}/main.log 2>&1 -echononl "Neu Einlesen der Berechtigung (MySQL Server).." -echo "" >> ${logdir}/main.log -echo "${MYSQL_INSTALL_DIR}/bin/mysql -uroot mysql -N -s -e \"FLUSH PRIVILEGES\"" >> ${logdir}/main.log -${MYSQL_INSTALL_DIR}/bin/mysql -uroot mysql -N -s -e "FLUSH PRIVILEGES" >> ${logdir}/main.log 2>&1 -if [ "$?" = "0" ]; then - echo_ok -else - echo_failed - error Das Laden/Erneuern der Berechtigungen für die MySQL Datenbank ist fehlgeschlagen.. + ## - Set root password + ## - + echononl "Setze root Passwort für den MySQL Zugang" + echo "" >> ${logdir}/main.log + echo "${MYSQL_INSTALL_DIR}/bin/mysql -uroot mysql -N -s -e \"UPDATE user set authentication_string = password('$MYSQL_ROOT_PW')\"" >> ${logdir}/main.log + ${MYSQL_INSTALL_DIR}/bin/mysql -uroot mysql -N -s -e "UPDATE user set authentication_string = password('$MYSQL_ROOT_PW')" \ + >> ${logdir}/main.log 2>&1 + if [ "$?" = "0" ]; then + echo_ok + else + echo_failed + error Konnte MySQL root Zugang fü den MySQL Server nicht setzen.. + fi + + ## - Flush privileges + ## - + echononl "Neu Einlesen der Berechtigung (MySQL Server).." + echo "" >> ${logdir}/main.log + echo "${MYSQL_INSTALL_DIR}/bin/mysql -uroot mysql -N -s -e \"FLUSH PRIVILEGES\"" >> ${logdir}/main.log + ${MYSQL_INSTALL_DIR}/bin/mysql -uroot mysql -N -s -e "FLUSH PRIVILEGES" >> ${logdir}/main.log 2>&1 + if [ "$?" = "0" ]; then + echo_ok + else + echo_failed + error Das Laden/Erneuern der Berechtigungen für die MySQL Datenbank ist fehlgeschlagen.. + fi fi -echo -echononl "Erstelle Passwort für maintance (MySQL) User.." -echo "" >> ${logdir}/main.log -PW_GEN=`which pwgen` -if [ -z "$PW_GEN" ]; then - echo "_maint_passwd=\`cat /dev/urandom|tr -dc \"a-zA-Z0-9-_\$\?\" | fold -w16 | head -n 1\`" >> ${logdir}/main.log - _maint_passwd=`cat /dev/urandom|tr -dc "a-zA-Z0-9-_\$\?" | fold -w16 | head -n 1` >> ${logdir}/main.log 2>&1 -else - echo "_maint_passwd=\`$PW_GEN -v -B 16 1\`" >> ${logdir}/main.log - _maint_passwd=`$PW_GEN -v -B 16 1` >> ${logdir}/main.log 2>&1 -fi -if [ "$?" = "0" ]; then - echo_ok -else - echo_failed - error Konnte Passwort für maintance \(MySQL\) User nicht erstellen.. +_sys_maint_cnf_needed=false +if $UPDATE_MYSQL ; then + echononl "Copy 'sys-maint.cnf from old installation to the new one.." + echo "" >> ${logdir}/main.log + echo "cp -a \"${MYSQL_CUR_INSTALL_DIR}/sys-maint.cnf\" \"${MYSQL_INSTALL_DIR}/sys-maint.cnf\"" >> ${logdir}/main.log + if [[ -f "${MYSQL_CUR_INSTALL_DIR}/my.cnf" ]] ; then + cp -a "${MYSQL_CUR_INSTALL_DIR}/my.cnf" "${MYSQL_INSTALL_DIR}/my.cnf" >> ${logdir}/main.log + if [ "$?" = "0" ]; then + echo_ok + else + echo_failed + _sys_maint_cnf_needed=true + error "Konnte Konfigurationsdatei 'sys-maint.cnf' nicht vom alten in das neue Installations Verz.kopieren.." + fi + else + _sys_maint_cnf_needed=true + fi fi -_maint_user=sys-maint -echononl "Erstelle maintance MySQL User \"${_maint_user}\" - localhost.." -echo "" >> ${logdir}/main.log -echo "${MYSQL_INSTALL_DIR}/bin/mysql -uroot -p$MYSQL_ROOT_PW mysql -N -s -e \"GRANT ALL ON *.* TO '${_maint_user}'@'localhost' IDENTIFIED BY '$_maint_passwd'\"" >> ${logdir}/main.log -${MYSQL_INSTALL_DIR}/bin/mysql -uroot -p$MYSQL_ROOT_PW mysql -N -s -e "GRANT ALL ON *.* TO '${_maint_user}'@'localhost' IDENTIFIED BY '$_maint_passwd'" >> ${logdir}/main.log 2>&1 -if [ "$?" = "0" ]; then - echo_ok -else - echo_failed - error Konnte \(MySQL\) User \"${_maint_user}\" nicht erstellen.. -fi +if ! $UPDATE_MYSQL || $_sys_maint_cnf_needed ; then + echo + echononl "Erstelle Passwort für maintance (MySQL) User.." + echo "" >> ${logdir}/main.log + PW_GEN=`which pwgen` + if [ -z "$PW_GEN" ]; then + echo "_maint_passwd=\`cat /dev/urandom|tr -dc \"a-zA-Z0-9-_\$\?\" | fold -w16 | head -n 1\`" >> ${logdir}/main.log + _maint_passwd=`cat /dev/urandom|tr -dc "a-zA-Z0-9-_\$\?" | fold -w16 | head -n 1` >> ${logdir}/main.log 2>&1 + else + echo "_maint_passwd=\`$PW_GEN -v -B 16 1\`" >> ${logdir}/main.log + _maint_passwd=`$PW_GEN -v -B 16 1` >> ${logdir}/main.log 2>&1 + fi + if [ "$?" = "0" ]; then + echo_ok + else + echo_failed + error Konnte Passwort für maintance \(MySQL\) User nicht erstellen.. + fi -echononl "Give \"Grant\" permission to MySQL User \"${_maint_user}\".." -echo "" >> ${logdir}/main.log -echo "${MYSQL_INSTALL_DIR}/bin/mysql -uroot -p$MYSQL_ROOT_PW mysql -N -s -e \"UPDATE user SET Grant_priv = 'y' WHERE user = '${_maint_user}';\"" >> ${logdir}/main.log -${MYSQL_INSTALL_DIR}/bin/mysql -uroot -p$MYSQL_ROOT_PW mysql -N -s -e "UPDATE user SET Grant_priv = 'y' WHERE user = '${_maint_user}';" >> ${logdir}/main.log 2>&1 -if [ "$?" = "0" ]; then - echo_ok -else - echo_failed - error Giving \"Grant\"-permission to \(MySQL\) User \"${_maint_user}\" failed -fi + _maint_user=sys-maint + echononl "Erstelle maintance MySQL User \"${_maint_user}\" - localhost.." + echo "" >> ${logdir}/main.log + echo "${MYSQL_INSTALL_DIR}/bin/mysql -uroot -p$MYSQL_ROOT_PW mysql -N -s -e \"GRANT ALL ON *.* TO '${_maint_user}'@'localhost' IDENTIFIED BY '$_maint_passwd'\"" >> ${logdir}/main.log + ${MYSQL_INSTALL_DIR}/bin/mysql -uroot -p$MYSQL_ROOT_PW mysql -N -s -e "GRANT ALL ON *.* TO '${_maint_user}'@'localhost' IDENTIFIED BY '$_maint_passwd'" >> ${logdir}/main.log 2>&1 + if [ "$?" = "0" ]; then + echo_ok + else + echo_failed + error Konnte \(MySQL\) User \"${_maint_user}\" nicht erstellen.. + fi -echononl "Neu Einlesen der Berechtigung (MySQL Server).." -echo "" >> ${logdir}/main.log -echo "${MYSQL_INSTALL_DIR}/bin/mysql -uroot -p$MYSQL_ROOT_PW mysql -N -s -e \"FLUSH PRIVILEGES\"" >> ${logdir}/main.log -${MYSQL_INSTALL_DIR}/bin/mysql -uroot -p$MYSQL_ROOT_PW mysql -N -s -e "FLUSH PRIVILEGES" >> ${logdir}/main.log 2>&1 -if [ "$?" = "0" ]; then - echo_ok -else - echo_failed - error Das Laden/Erneuern der Berechtigungen für die MySQL Datenbank ist fehlgeschlagen.. -fi + echononl "Give \"Grant\" permission to MySQL User \"${_maint_user}\".." + echo "" >> ${logdir}/main.log + echo "${MYSQL_INSTALL_DIR}/bin/mysql -uroot -p$MYSQL_ROOT_PW mysql -N -s -e \"UPDATE user SET Grant_priv = 'y' WHERE user = '${_maint_user}';\"" >> ${logdir}/main.log + ${MYSQL_INSTALL_DIR}/bin/mysql -uroot -p$MYSQL_ROOT_PW mysql -N -s -e "UPDATE user SET Grant_priv = 'y' WHERE user = '${_maint_user}';" >> ${logdir}/main.log 2>&1 + if [ "$?" = "0" ]; then + echo_ok + else + echo_failed + error Giving \"Grant\"-permission to \(MySQL\) User \"${_maint_user}\" failed + fi + + echononl "Neu Einlesen der Berechtigung (MySQL Server).." + echo "" >> ${logdir}/main.log + echo "${MYSQL_INSTALL_DIR}/bin/mysql -uroot -p$MYSQL_ROOT_PW mysql -N -s -e \"FLUSH PRIVILEGES\"" >> ${logdir}/main.log + ${MYSQL_INSTALL_DIR}/bin/mysql -uroot -p$MYSQL_ROOT_PW mysql -N -s -e "FLUSH PRIVILEGES" >> ${logdir}/main.log 2>&1 + if [ "$?" = "0" ]; then + echo_ok + else + echo_failed + error Das Laden/Erneuern der Berechtigungen für die MySQL Datenbank ist fehlgeschlagen.. + fi -_maint_conf_file=${MYSQL_INSTALL_DIR}/sys-maint.cnf -echononl "Erstelle ${_maint_conf_file}.." -cat << EOF > ${MYSQL_INSTALL_DIR}/sys-maint.cnf + _maint_conf_file=${MYSQL_INSTALL_DIR}/sys-maint.cnf + echononl "Erstelle ${_maint_conf_file}.." + cat << EOF > ${MYSQL_INSTALL_DIR}/sys-maint.cnf [client] host = localhost user = $_maint_user @@ -2242,11 +2425,12 @@ password = $_maint_passwd socket = $MYSQL_UNIX_SOCKET basedir = /usr EOF -if [ "$?" = "0" ]; then - echo_ok -else - echo_failed - error Konnte Konfigurationsdatei \"${MYSQL_INSTALL_DIR}/sys-maint.cnf\" nicht erstellen.. + if [ "$?" = "0" ]; then + echo_ok + else + echo_failed + error Konnte Konfigurationsdatei \"${MYSQL_INSTALL_DIR}/sys-maint.cnf\" nicht erstellen.. + fi fi @@ -2282,4 +2466,4 @@ fi echo -exit +exit 0