diff --git a/install_mysql-5.7.sh b/install_mysql-5.7.sh index 19efdc4..d74ae8d 100755 --- a/install_mysql-5.7.sh +++ b/install_mysql-5.7.sh @@ -1,5 +1,7 @@ #!/usr/bin/env bash +_backup_date="$(date +"%Y-%m-%d-%H%M")" + #_MYSQL_VERSION=5.6.26 _MYSQL_VERSION=5.7.17 @@ -589,7 +591,7 @@ echo "" ## - if [ -d $logdir ]; then echononl "Verschiebe exitierendes Logverzeichnis ..." - mv $logdir $logdir.`date +"%Y%m%d-%H%M"` + mv ${logdir $logdir}.$_backup_date if [ "$?" = "0" ]; then echo_ok else @@ -740,22 +742,6 @@ else echo_skipped fi -echo "" -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 @@ -905,28 +891,35 @@ if ! $UPDATE_MYSQL ; then # 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 - else - echo_failed - 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 + + echo "" + if [ -d $MYSQL_DATA_DIR ]; then + echononl "Sichere exitierendes MySQL Datenbank-Verzeichnis ..." + echo "" >> ${logdir}/main.log + echo "cp -a $MYSQL_DATA_DIR ${MYSQL_DATA_DIR}.${_backup_date}" >> ${logdir}/main.log + cp -a $MYSQL_DATA_DIR ${MYSQL_DATA_DIR}.$_backup_date >> ${logdir}/main.log 2>&1 + if [ "$?" = "0" ]; then + echo_ok + else + echo_failed + fatal "Kann Datenbank-Verzeichnis \"${MYSQL_DATA_DIR}\" nicht verschieben.." + fi + elif [[ -d "$MYSQL_CUR_DATA_DIR" ]] ; then + 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 else echo_failed - fatal "Kopieren \"$MYSQL_CUR_DATA_DIR\" --> \"${MYSQL_DATA_DIR}\" fehlgeschlagen.." + fatal "Exitierendes MySQL Datenbank-Verzeichnis nicht gefunden!" fi fi # if ! $UPDATE_MYSQL @@ -959,6 +952,18 @@ else 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 +else + echo_failed + fatal Kann Datenbank-Verzeichnis \"${MYSQL_DATA_DIR}\" nicht erstellen.. +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 @@ -1022,8 +1027,8 @@ fi if [ -d "${MYSQL_SRC_DIR}" ];then echononl "Verschiebe exitierendes Sourceverzeichnis ..." echo "" >> ${logdir}/main.log - echo "mv ${MYSQL_SRC_DIR} ${MYSQL_SRC_DIR}.`date +\"%Y%m%d-%H%M\"`" >> ${logdir}/main.log - mv ${MYSQL_SRC_DIR} ${MYSQL_SRC_DIR}.`date +"%Y%m%d-%H%M"` >> ${logdir}/main.log 2>&1 + echo "mv ${MYSQL_SRC_DIR} ${MYSQL_SRC_DIR}.${_backup_date}" >> ${logdir}/main.log + mv ${MYSQL_SRC_DIR} ${MYSQL_SRC_DIR}.$_backup_date >> ${logdir}/main.log 2>&1 if [ "$?" = "0" ]; then echo_ok else @@ -1057,8 +1062,8 @@ echo "cd ${MYSQL_SRC_DIR}" >> ${logdir}/main.log if [ -d ${MYSQL_INSTALL_DIR} ];then echononl "Verschiebe exitierendes Installationsverzeichnis ..." echo "" >> ${logdir}/main.log - echo "mv $MYSQL_INSTALL_DIR $MYSQL_INSTALL_DIR.`date +\"%Y%m%d-%H%M\"`" >> ${logdir}/main.log - mv $MYSQL_INSTALL_DIR $MYSQL_INSTALL_DIR.`date +"%Y%m%d-%H%M"` >> ${logdir}/main.log 2>&1 + echo "mv $MYSQL_INSTALL_DIR $MYSQL_INSTALL_DIR.${_backup_date}" >> ${logdir}/main.log + mv $MYSQL_INSTALL_DIR $MYSQL_INSTALL_DIR.$_backup_date >> ${logdir}/main.log 2>&1 if [ "$?" = "0" ]; then echo_ok else @@ -1247,6 +1252,20 @@ if $SYMLINK_INITSCRIPT ; then fi fi + if [ -f "/etc/init.d/mysql.server" ]; then + echononl "Entferne vorhandenen Datei \"/etc/init.d/mysql.server\".." + echo "" >> ${logdir}/main.log + echo "rm /etc/init.d/mysql.server" >> ${logdir}/main.log + rm /etc/init.d/mysql.server >> ${logdir}/main.log 2>&1 + if [ "$?" = "0" ]; then + echo_ok + else + echo_failed + error Kann Datei /etc/init.d/mysql.server nicht entfernen.. + fi + fi + + 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 @@ -1419,7 +1438,7 @@ _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 \"$( realpath ${MYSQL_CUR_INSTALL_DIR}/my.cnf)\" \"${MYSQL_INSTALL_DIR}/my.cnf\"" >> ${logdir}/main.log + echo "cp -a \"$(realpath ${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 "$(realpath ${MYSQL_CUR_INSTALL_DIR}/my.cnf)" "${MYSQL_INSTALL_DIR}/my.cnf" >> ${logdir}/main.log if [ "$?" = "0" ]; then @@ -1430,6 +1449,7 @@ if $UPDATE_MYSQL ; then error "Konnte Konfigurationsdatei 'my.cnf' nicht vom alten in das neue Installations Verz.kopieren.." fi else + echo_skipped _new_cnf_needed=true fi fi @@ -2417,8 +2437,12 @@ else 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 + ret_val=$? + if [[ $ret_val -eq 0 ]] ; then echo_ok + elif [[ $ret_val -eq 2 ]] ; then + echo_skipped + warn "Return Code was '2' - it means MySQL is already upgraded to 5.7.20" else echo_failed error "Script \"mysql_upgrade -uroot\" failed!"