diff --git a/install_mysql.sh b/install_mysql.sh index 86ab79b..adbb993 100755 --- a/install_mysql.sh +++ b/install_mysql.sh @@ -18,6 +18,9 @@ _DISTRIBUTION=Debian _VSERVER_GUEST=nein _required_debian_packages="default-jdk + libncurses5-dev + libssl-dev + lsb-release gnutls-dev libaio-dev libarchive-dev @@ -2488,7 +2491,7 @@ if $UPDATE_MYSQL ; then else if [[ "$MYSQL_MAJOR_VERSION" -gt 5 ]] \ || ( [[ "$MYSQL_MAJOR_VERSION" -eq 5 ]] && [[ "$MYSQL_MINOR_VERSION" -ge 7 ]] ) ; then - proof_var="thread_concurrency" + proof_var="thread[_-]concurrency" echononl "Deaktiviere '${proof_var} .." if grep -q -E "^\s*${proof_var}.*" "$MY_CNF_FILE" 2> /dev/null ; then echo "" >> ${logdir}/main.log @@ -2506,7 +2509,7 @@ if $UPDATE_MYSQL ; then echo_skipped fi - proof_var="innodb_additional_mem_pool_size" + proof_var="innodb[_-]additional[_-]mem[_-]pool[_-]size" echononl "Deaktiviere '${proof_var} .." if grep -q -E "^\s*${proof_var}.*" "$MY_CNF_FILE" 2> /dev/null ; then echo "" >> ${logdir}/main.log @@ -2525,6 +2528,105 @@ if $UPDATE_MYSQL ; then fi fi # if [[ "$MYSQL_MAJOR_VERSION" -lt 5 ]] || ... + + + if [[ "$MYSQL_MAJOR_VERSION" -gt 8 ]] \ + || ( [[ "$MYSQL_MAJOR_VERSION" -eq 8 ]] && [[ "$MYSQL_MINOR_VERSION" -gt 0 ]] ) \ + || ( [[ "$MYSQL_MAJOR_VERSION" -eq 8 ]] && [[ "$MYSQL_MINOR_VERSION" -eq 0 ]] \ + && [[ $MYSQL_PATCH_LEVEL -ge 3 ]] ); then + + proof_var="sql[_-]mode" + echononl "Deaktiviere '${proof_var} .." + if grep -q -E "^\s*${proof_var}.*" "$MY_CNF_FILE" 2> /dev/null ; then + echo "" >> ${logdir}/main.log + echo "## - Deaktiviere '${proof_var} .." >> ${logdir}/main.log + echo "## -" >> ${logdir}/main.log + echo "perl -i -n -p -e \"s/^(\s*)(${proof_var}.*)/## - Since Version 8.0.11 NO_AUTO_CREATE_USER is no longer available\n## -\n## - For now, we will use the default value, it seems to be ok.\n## -\n#\1\2/\" \"$MY_CNF_FILE\"" >> ${logdir}/main.log + perl -i -n -p -e "s/^(\s*)(${proof_var}.*)/## - Since Version 8.0.11 NO_AUTO_CREATE_USER is no longer available\n## -\n## - For now, we will use the default value, it seems to be ok.\n## -\n#\1\2/" "$MY_CNF_FILE" >> ${logdir}/main.log 2>&1 + if [ "$?" = "0" ]; then + echo_ok + else + echo_failed + warn "Konnte '${proof_var}' nicht deaktivieren." + fi + else + echo_skipped + fi + + proof_var="query[_-]cache[_-]limit" + echononl "Deaktiviere '${proof_var} .." + if grep -q -E "^\s*${proof_var}.*" "$MY_CNF_FILE" 2> /dev/null ; then + echo "" >> ${logdir}/main.log + echo "## - Deaktiviere '${proof_var} .." >> ${logdir}/main.log + echo "## -" >> ${logdir}/main.log + echo "perl -i -n -p -e \"s/^(\s*)(${proof_var}.*)/## - Removed since Version 8.0.3\n## -\n#\1\2/\" \"$MY_CNF_FILE\"" >> ${logdir}/main.log + perl -i -n -p -e "s/^(\s*)(${proof_var}.*)/## - Removed since Version 8.0.3\n## -\n#\1\2/" "$MY_CNF_FILE" >> ${logdir}/main.log 2>&1 + if [ "$?" = "0" ]; then + echo_ok + else + echo_failed + warn "Konnte '${proof_var}' nicht deaktivieren." + fi + else + echo_skipped + fi + + proof_var="query[_-]cache[_-]type" + echononl "Deaktiviere '${proof_var} .." + if grep -q -E "^\s*${proof_var}.*" "$MY_CNF_FILE" 2> /dev/null ; then + echo "" >> ${logdir}/main.log + echo "## - Deaktiviere '${proof_var} .." >> ${logdir}/main.log + echo "## -" >> ${logdir}/main.log + echo "perl -i -n -p -e \"s/^(\s*)(${proof_var}.*)/## - Removed since Version 8.0.3\n## -\n#\1\2/\" \"$MY_CNF_FILE\"" >> ${logdir}/main.log + perl -i -n -p -e "s/^(\s*)(${proof_var}.*)/## - Removed since Version 8.0.3\n## -\n#\1\2/" "$MY_CNF_FILE" >> ${logdir}/main.log 2>&1 + if [ "$?" = "0" ]; then + echo_ok + else + echo_failed + warn "Konnte '${proof_var}' nicht deaktivieren." + fi + else + echo_skipped + fi + + proof_var="query[_-]cache[_-]min[_-]res[_-]unit" + echononl "Deaktiviere '${proof_var} .." + if grep -q -E "^\s*${proof_var}.*" "$MY_CNF_FILE" 2> /dev/null ; then + echo "" >> ${logdir}/main.log + echo "## - Deaktiviere '${proof_var} .." >> ${logdir}/main.log + echo "## -" >> ${logdir}/main.log + echo "perl -i -n -p -e \"s/^(\s*)(${proof_var}.*)/## - Removed since Version 8.0.3\n## -\n#\1\2/\" \"$MY_CNF_FILE\"" >> ${logdir}/main.log + perl -i -n -p -e "s/^(\s*)(${proof_var}.*)/## - Removed since Version 8.0.3\n## -\n#\1\2/" "$MY_CNF_FILE" >> ${logdir}/main.log 2>&1 + if [ "$?" = "0" ]; then + echo_ok + else + echo_failed + warn "Konnte '${proof_var}' nicht deaktivieren." + fi + else + echo_skipped + fi + + proof_var="query[_-]cache[_-]size" + echononl "Deaktiviere '${proof_var} .." + if grep -q -E "^\s*${proof_var}.*" "$MY_CNF_FILE" 2> /dev/null ; then + echo "" >> ${logdir}/main.log + echo "## - Deaktiviere '${proof_var} .." >> ${logdir}/main.log + echo "## -" >> ${logdir}/main.log + echo "perl -i -n -p -e \"s/^(\s*)(${proof_var}.*)/## -\n## - Removed since Version 8.0.3\n## -\n#\1\2/\" \"$MY_CNF_FILE\"" >> ${logdir}/main.log + perl -i -n -p -e "s/^(\s*)(${proof_var}.*)/## -\n## - Removed since Version 8.0.3\n## -\n#\1\2/" "$MY_CNF_FILE" >> ${logdir}/main.log 2>&1 + if [ "$?" = "0" ]; then + echo_ok + else + echo_failed + warn "Konnte '${proof_var}' nicht deaktivieren." + fi + else + echo_skipped + fi + + fi # if [[ "$MYSQL_MAJOR_VERSION" -gt 8 ]] || .. + fi fi @@ -2582,13 +2684,34 @@ innodb-open-files = $(ulimit -Hn) port = $MYSQL_PORT socket = $MYSQL_UNIX_SOCKET +" >> ${logdir}/main.log + if [[ "$MYSQL_MAJOR_VERSION" -gt 8 ]] \ + || ( [[ "$MYSQL_MAJOR_VERSION" -eq 8 ]] && [[ "$MYSQL_MINOR_VERSION" -gt 0 ]] ) \ + || ( [[ "$MYSQL_MAJOR_VERSION" -eq 8 ]] && [[ "$MYSQL_MINOR_VERSION" -eq 0 ]] \ + && [[ $MYSQL_PATCH_LEVEL -ge 3 ]] ); then + echo " +## - sql_mode +## - +## - Since Version 8.0.11 NO_AUTO_CREATE_USER is no longer available +## - +## - For now, we will use the default value, it seems to be ok. +## - +#sql-mode = \"ONLY_FULL_GROUP_BY,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION\" +" >> ${logdir}/main.log + + else + echo " ## - sql_mode ## - ## - To be compartible with older programming on mysql 5.6 ## - sql-mode = \"ONLY_FULL_GROUP_BY,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION\" +" >> ${logdir}/main.log + fi + + echo " ## - secure_file_priv ## - @@ -3155,8 +3278,23 @@ log-error = $_mysql_error_log ## - SELECT SQL_NO_CACHE beginnen. ## - 2 : speichert nur diejenigen Anweisungen im Cache, ## - die mit SELECT SQL_CACHE beginnen. -query-cache-type = 1 +" >> ${logdir}/main.log + if [[ "$MYSQL_MAJOR_VERSION" -gt 8 ]] \ + || ( [[ "$MYSQL_MAJOR_VERSION" -eq 8 ]] && [[ "$MYSQL_MINOR_VERSION" -gt 0 ]] ) \ + || ( [[ "$MYSQL_MAJOR_VERSION" -eq 8 ]] && [[ "$MYSQL_MINOR_VERSION" -eq 0 ]] \ + && [[ $MYSQL_PATCH_LEVEL -ge 3 ]] ); then + echo " +## - die mit SELECT SQL_CACHE beginnen. +## - Removed since Version 8.0.3 +## - +#query_cache_type = 1" >> ${logdir}/main.log + + else + echo "query-cache-type = 1" >> ${logdir}/main.log + fi + + echo " ## - query_cache_limit ## - @@ -3165,8 +3303,23 @@ query-cache-type = 1 ## - ## - Vorgeabewert ist 1Mbyte ## - -query-cache-limit = 4M +" >> ${logdir}/main.log + if [[ "$MYSQL_MAJOR_VERSION" -gt 8 ]] \ + || ( [[ "$MYSQL_MAJOR_VERSION" -eq 8 ]] && [[ "$MYSQL_MINOR_VERSION" -gt 0 ]] ) \ + || ( [[ "$MYSQL_MAJOR_VERSION" -eq 8 ]] && [[ "$MYSQL_MINOR_VERSION" -eq 0 ]] \ + && [[ $MYSQL_PATCH_LEVEL -ge 3 ]] ); then + echo " +## - die mit SELECT SQL_CACHE beginnen. +## - Removed since Version 8.0.3 +## - +#query-cache-limit = 4M" >> ${logdir}/main.log + + else + echo "query-cache-limit = 4M" >> ${logdir}/main.log + fi + + echo " ## - query_cache_min_res_unit ## - @@ -3184,8 +3337,23 @@ query-cache-limit = 4M ## - ## - Vorgabewert ist 4Kbyte ## - -query-cache-min-res-unit = 8K +" >> ${logdir}/main.log + if [[ "$MYSQL_MAJOR_VERSION" -gt 8 ]] \ + || ( [[ "$MYSQL_MAJOR_VERSION" -eq 8 ]] && [[ "$MYSQL_MINOR_VERSION" -gt 0 ]] ) \ + || ( [[ "$MYSQL_MAJOR_VERSION" -eq 8 ]] && [[ "$MYSQL_MINOR_VERSION" -eq 0 ]] \ + && [[ $MYSQL_PATCH_LEVEL -ge 3 ]] ); then + echo " +## - die mit SELECT SQL_CACHE beginnen. +## - Removed since Version 8.0.3 +## - +#query-cache-min-res-unit = 8K" >> ${logdir}/main.log + + else + echo "query-cache-min-res-unit = 8K" >> ${logdir}/main.log + fi + + echo " ## - query_cache_size ## - @@ -3198,8 +3366,25 @@ query-cache-min-res-unit = 8K ## - ## - Vorgabewert ist 0, d. h. der Abfrage-Cache ist vorgabeseitig deaktiviert. ## - +" >> ${logdir}/main.log + + if [[ "$MYSQL_MAJOR_VERSION" -gt 8 ]] \ + || ( [[ "$MYSQL_MAJOR_VERSION" -eq 8 ]] && [[ "$MYSQL_MINOR_VERSION" -gt 0 ]] ) \ + || ( [[ "$MYSQL_MAJOR_VERSION" -eq 8 ]] && [[ "$MYSQL_MINOR_VERSION" -eq 0 ]] \ + && [[ $MYSQL_PATCH_LEVEL -ge 3 ]] ); then + echo " +## - die mit SELECT SQL_CACHE beginnen. +## - Removed since Version 8.0.3 +## - #query-cache-size = 32M -query-cache-size = 128M +#query-cache-size = 128M" >> ${logdir}/main.log + + else + echo "#query-cache-size = 32M +#query-cache-size = 128M" >> ${logdir}/main.log + fi + + echo " ## - query cache ## ------------- @@ -3352,7 +3537,26 @@ write-buffer = 2M [mysqlhotcopy] interactive-timeout +" >> ${logdir}/main.log + if [[ "$MYSQL_MAJOR_VERSION" -gt 8 ]] \ + || ( [[ "$MYSQL_MAJOR_VERSION" -eq 8 ]] && [[ "$MYSQL_MINOR_VERSION" -gt 0 ]] ) \ + || ( [[ "$MYSQL_MAJOR_VERSION" -eq 8 ]] && [[ "$MYSQL_MINOR_VERSION" -eq 0 ]] \ + && [[ $MYSQL_PATCH_LEVEL -ge 3 ]] ); then + + echo " +## - sql_mode +## - +## - Since Version 8.0.11 NO_AUTO_CREATE_USER is no longer available +## - +## - For now, we will use the default value, it seems to be ok. +## - +#sql-mode = \"ONLY_FULL_GROUP_BY,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION\" + +EOF" >> ${logdir}/main.log + + else + echo " ## - sql_mode ## - ## - To be compartible with older programming on mysql 5.6 @@ -3360,6 +3564,7 @@ interactive-timeout sql-mode = "ONLY_FULL_GROUP_BY,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION" EOF" >> ${logdir}/main.log + fi cat << EOF > ${MYSQL_INSTALL_DIR}/etc/my.cnf # Example MySQL config file for very large systems. @@ -3399,13 +3604,34 @@ innodb-open-files = $(ulimit -Hn) port = $MYSQL_PORT socket = $MYSQL_UNIX_SOCKET +EOF + if [[ "$MYSQL_MAJOR_VERSION" -gt 8 ]] \ + || ( [[ "$MYSQL_MAJOR_VERSION" -eq 8 ]] && [[ "$MYSQL_MINOR_VERSION" -gt 0 ]] ) \ + || ( [[ "$MYSQL_MAJOR_VERSION" -eq 8 ]] && [[ "$MYSQL_MINOR_VERSION" -eq 0 ]] \ + && [[ $MYSQL_PATCH_LEVEL -ge 3 ]] ); then + + cat << EOF >> ${MYSQL_INSTALL_DIR}/etc/my.cnf +## - sql_mode +## - +## - Since Version 8.0.11 NO_AUTO_CREATE_USER is no longer available +## - +## - For now, we will use the default value, it seems to be ok. +## - +#sql-mode = "ONLY_FULL_GROUP_BY,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION" +EOF + + else + cat << EOF >> ${MYSQL_INSTALL_DIR}/etc/my.cnf ## - sql_mode ## - ## - To be compartible with older programming on mysql 5.6 ## - sql-mode = "ONLY_FULL_GROUP_BY,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION" +EOF + fi + cat << EOF >> ${MYSQL_INSTALL_DIR}/etc/my.cnf ## - secure-file-priv ## - @@ -3972,7 +4198,25 @@ log-error = $_mysql_error_log ## - SELECT SQL_NO_CACHE beginnen. ## - 2 : speichert nur diejenigen Anweisungen im Cache, ## - die mit SELECT SQL_CACHE beginnen. +EOF + if [[ "$MYSQL_MAJOR_VERSION" -gt 8 ]] \ + || ( [[ "$MYSQL_MAJOR_VERSION" -eq 8 ]] && [[ "$MYSQL_MINOR_VERSION" -gt 0 ]] ) \ + || ( [[ "$MYSQL_MAJOR_VERSION" -eq 8 ]] && [[ "$MYSQL_MINOR_VERSION" -eq 0 ]] \ + && [[ $MYSQL_PATCH_LEVEL -ge 3 ]] ); then + + cat << EOF >> ${MYSQL_INSTALL_DIR}/etc/my.cnf +## - +## - Removed since MySQL Version 8.0.3 +## - +#query_cache_type = 1 +EOF + else + cat << EOF >> ${MYSQL_INSTALL_DIR}/etc/my.cnf query_cache_type = 1 +EOF + fi + + cat << EOF >> ${MYSQL_INSTALL_DIR}/etc/my.cnf ## - query_cache_limit @@ -3982,7 +4226,25 @@ query_cache_type = 1 ## - ## - Vorgeabewert ist 1Mbyte ## - +EOF + if [[ "$MYSQL_MAJOR_VERSION" -gt 8 ]] \ + || ( [[ "$MYSQL_MAJOR_VERSION" -eq 8 ]] && [[ "$MYSQL_MINOR_VERSION" -gt 0 ]] ) \ + || ( [[ "$MYSQL_MAJOR_VERSION" -eq 8 ]] && [[ "$MYSQL_MINOR_VERSION" -eq 0 ]] \ + && [[ $MYSQL_PATCH_LEVEL -ge 3 ]] ); then + + cat << EOF >> ${MYSQL_INSTALL_DIR}/etc/my.cnf +## - +## - Removed since MySQL Version 8.0.3 +## - +#query-cache-limit = 4M +EOF + else + cat << EOF >> ${MYSQL_INSTALL_DIR}/etc/my.cnf query-cache-limit = 4M +EOF + fi + + cat << EOF >> ${MYSQL_INSTALL_DIR}/etc/my.cnf ## - query_cache_min_res_unit @@ -4001,7 +4263,25 @@ query-cache-limit = 4M ## - ## - Vorgabewert ist 4Kbyte ## - +EOF + if [[ "$MYSQL_MAJOR_VERSION" -gt 8 ]] \ + || ( [[ "$MYSQL_MAJOR_VERSION" -eq 8 ]] && [[ "$MYSQL_MINOR_VERSION" -gt 0 ]] ) \ + || ( [[ "$MYSQL_MAJOR_VERSION" -eq 8 ]] && [[ "$MYSQL_MINOR_VERSION" -eq 0 ]] \ + && [[ $MYSQL_PATCH_LEVEL -ge 3 ]] ); then + + cat << EOF >> ${MYSQL_INSTALL_DIR}/etc/my.cnf +## - +## - Removed since MySQL Version 8.0.3 +## - +#query-cache-min-res-unit = 8K +EOF + else + cat << EOF >> ${MYSQL_INSTALL_DIR}/etc/my.cnf query-cache-min-res-unit = 8K +EOF + fi + + cat << EOF >> ${MYSQL_INSTALL_DIR}/etc/my.cnf ## - query_cache_size @@ -4015,8 +4295,26 @@ query-cache-min-res-unit = 8K ## - ## - Vorgabewert ist 0, d. h. der Abfrage-Cache ist vorgabeseitig deaktiviert. ## - +EOF + if [[ "$MYSQL_MAJOR_VERSION" -gt 8 ]] \ + || ( [[ "$MYSQL_MAJOR_VERSION" -eq 8 ]] && [[ "$MYSQL_MINOR_VERSION" -gt 0 ]] ) \ + || ( [[ "$MYSQL_MAJOR_VERSION" -eq 8 ]] && [[ "$MYSQL_MINOR_VERSION" -eq 0 ]] \ + && [[ $MYSQL_PATCH_LEVEL -ge 3 ]] ); then + + cat << EOF >> ${MYSQL_INSTALL_DIR}/etc/my.cnf +## - +## - Removed since MySQL Version 8.0.3 +## - #query_cache_size = 32M +#query-cache-size = 128M +EOF + else + cat << EOF >> ${MYSQL_INSTALL_DIR}/etc/my.cnf query-cache-size = 128M +EOF + fi + + cat << EOF >> ${MYSQL_INSTALL_DIR}/etc/my.cnf ## - query cache ## ------------- @@ -4170,6 +4468,24 @@ write-buffer = 2M interactive-timeout +EOF + if [[ "$MYSQL_MAJOR_VERSION" -gt 8 ]] \ + || ( [[ "$MYSQL_MAJOR_VERSION" -eq 8 ]] && [[ "$MYSQL_MINOR_VERSION" -gt 0 ]] ) \ + || ( [[ "$MYSQL_MAJOR_VERSION" -eq 8 ]] && [[ "$MYSQL_MINOR_VERSION" -eq 0 ]] \ + && [[ $MYSQL_PATCH_LEVEL -ge 3 ]] ); then + + cat << EOF >> ${MYSQL_INSTALL_DIR}/etc/my.cnf +## - sql_mode +## - +## - Since Version 8.0.11 NO_AUTO_CREATE_USER is no longer available +## - +## - For now, we will use the default value, it seems to be ok. +## - +#sql-mode = "ONLY_FULL_GROUP_BY,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION" +EOF + + else + cat << EOF >> ${MYSQL_INSTALL_DIR}/etc/my.cnf ## - sql_mode ## - ## - To be compartible with older programming on mysql 5.6 @@ -4177,6 +4493,8 @@ interactive-timeout sql-mode = "ONLY_FULL_GROUP_BY,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION" EOF + fi + if [ "$?" = "0" ]; then echo_ok else @@ -4614,9 +4932,10 @@ if ! $UPDATE_MYSQL ; then ## - Set root password ## - - echononl "Setze root Passwort für den MySQL Zugang" if [[ "$MYSQL_DISTRIBUTION" = "MariaDB" ]]; then + echononl "Setze root Passwort für den MySQL Zugang" + echo "" >> ${logdir}/main.log echo "## - Setze root Passwort für den MariaDB Zugang" >> ${logdir}/main.log echo "## -" >> ${logdir}/main.log @@ -4640,20 +4959,19 @@ if ! $UPDATE_MYSQL ; then [[ $OK = "yes" ]] || fatal "Abbruch durch User" fi - else - + ## - Flush privileges + ## - + echononl "Neu Einlesen der Berechtigung (MySQL Server).." echo "" >> ${logdir}/main.log - echo "## - Setze root Passwort für den MySQL Zugang" >> ${logdir}/main.log + echo "## - Neu Einlesen der Berechtigung (MySQL Server)" >> ${logdir}/main.log echo "## -" >> ${logdir}/main.log - echo "${MYSQL_INSTALL_DIR}/bin/mysql -uroot mysql -N -s -e \"UPDATE user SET authentication_string = password('$MYSQL_ROOT_PW')\" WHERE User = 'root'" >> ${logdir}/main.log - - ${MYSQL_INSTALL_DIR}/bin/mysql -uroot mysql -N -s -e "UPDATE user SET authentication_string = password('$MYSQL_ROOT_PW') WHERE User = 'root'" \ - >> ${logdir}/main.log 2>&1 + 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 Konnte root Passwort für den MySQL Server nicht setzen.. + error Das Laden/Erneuern der Berechtigungen für die MySQL Datenbank ist fehlgeschlagen.. echononl "continue anyway [yes/no]: " read OK @@ -4665,32 +4983,111 @@ if ! $UPDATE_MYSQL ; then [[ $OK = "yes" ]] || fatal "Abbruch durch User" fi - fi - - ## - Flush privileges - ## - - echononl "Neu Einlesen der Berechtigung (MySQL Server).." - echo "" >> ${logdir}/main.log - echo "## - Neu Einlesen der Berechtigung (MySQL Server)" >> ${logdir}/main.log - 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.. - 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" + if [[ "$MYSQL_MAJOR_VERSION" -lt 8 ]]; then + + echononl "Setze root Passwort für den MySQL Zugang" + echo "" >> ${logdir}/main.log + echo "## - Setze root Passwort für den MySQL Zugang" >> ${logdir}/main.log + echo "## -" >> ${logdir}/main.log + echo "${MYSQL_INSTALL_DIR}/bin/mysql -uroot mysql -N -s -e \"UPDATE user SET authentication_string = password('$MYSQL_ROOT_PW') WHERE User = 'root'\"" >> ${logdir}/main.log + + ${MYSQL_INSTALL_DIR}/bin/mysql -uroot mysql -N -s -e "UPDATE user SET authentication_string = 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 MySQL 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 + + ## - Flush privileges + ## - + echononl "Neu Einlesen der Berechtigung (MySQL Server).." + echo "" >> ${logdir}/main.log + echo "## - Neu Einlesen der Berechtigung (MySQL Server)" >> ${logdir}/main.log + 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.. + + 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 + + ## - Flush privileges + ## - + echononl "Neu Einlesen der Berechtigung (MySQL Server).." + echo "" >> ${logdir}/main.log + echo "## - Neu Einlesen der Berechtigung (MySQL Server)" >> ${logdir}/main.log + 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.. + + 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 + + echononl "Setze root Passwort für den MySQL Zugang" + echo "" >> ${logdir}/main.log + echo "## - Setze root Passwort für den MySQL Zugang" >> ${logdir}/main.log + echo "## -" >> ${logdir}/main.log + echo "${MYSQL_INSTALL_DIR}/bin/mysql -uroot mysql -N -s -e \"ALTER USER 'root'@'localhost' IDENTIFIED BY '$MYSQL_ROOT_PW'\"" >> ${logdir}/main.log + + ${MYSQL_INSTALL_DIR}/bin/mysql -uroot mysql -N -s -e "ALTER USER 'root'@'localhost' IDENTIFIED BY '$MYSQL_ROOT_PW'" \ + >> ${logdir}/main.log 2>&1 + if [ "$?" = "0" ]; then + echo_ok + else + echo_failed + error Konnte root Passwort für den MySQL 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 + fi # if [[ "$MYSQL_MAJOR_VERSION" -lt 8 ]] + fi + else ## - Run mysql_upgrade @@ -4811,27 +5208,78 @@ if ! $UPDATE_MYSQL || $_sys_maint_cnf_needed ; then fi _maint_user=sys-maint - echononl "Erstelle maintance MySQL User '${_maint_user}' - localhost.." - echo "" >> ${logdir}/main.log - echo "## - Erstelle maintance MySQL User '${_maint_user}' - localhost" >> ${logdir}/main.log - 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.. - 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]: " + if [[ "$MYSQL_MAJOR_VERSION" -lt 8 ]]; then + + echononl "Erstelle maintance MySQL User '${_maint_user}' - localhost.." + echo "" >> ${logdir}/main.log + echo "## - Erstelle maintance MySQL User '${_maint_user}' - localhost" >> ${logdir}/main.log + 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.. + + echononl "continue anyway [yes/no]: " read OK - done - [[ $OK = "yes" ]] || fatal "Abbruch durch User" - fi + 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 + + echononl "Erstelle maintance MySQL User '${_maint_user}' - localhost.." + echo "" >> ${logdir}/main.log + echo "## - Erstelle maintance MySQL User '${_maint_user}' - localhost" >> ${logdir}/main.log + echo "" >> ${logdir}/main.log + echo "${MYSQL_INSTALL_DIR}/bin/mysql -uroot -p$MYSQL_ROOT_PW mysql -N -s -e \"CREATE USER '${_maint_user}'@'localhost' IDENTIFIED BY '$_maint_passwd'\"" >> ${logdir}/main.log + ${MYSQL_INSTALL_DIR}/bin/mysql -uroot -p$MYSQL_ROOT_PW mysql -N -s -e "CREATE USER '${_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.. + + 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 + + echononl "Set (all) privileges to MySQL User '${_maint_user}' - localhost.." + echo "" >> ${logdir}/main.log + echo "## - Set (all) privileges to MySQL User '${_maint_user}' - localhost" >> ${logdir}/main.log + 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'\"" >> ${logdir}/main.log + ${MYSQL_INSTALL_DIR}/bin/mysql -uroot -p$MYSQL_ROOT_PW mysql -N -s -e "GRANT ALL ON *.* TO '${_maint_user}'@'localhost'" >> ${logdir}/main.log 2>&1 + if [ "$?" = "0" ]; then + echo_ok + else + echo_failed + error Konnte \(MySQL\) User \"${_maint_user}\" nicht erstellen.. + + 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 + + fi # if [[ "$MYSQL_MAJOR_VERSION" -lt 8 ]] echononl "Give 'Grant' permission to MySQL User '${_maint_user}'.." echo "" >> ${logdir}/main.log