Redesing upgrade mode.

This commit is contained in:
Christoph 2017-09-26 01:08:07 +02:00
parent 8d1769f0e0
commit 4f61ae3788
2 changed files with 511 additions and 326 deletions

1
.gitignore vendored
View File

@ -1,3 +1,4 @@
*.swp
/BAK/* /BAK/*
/log* /log*
/mysql* /mysql*

View File

@ -153,13 +153,26 @@ else
UPDATE_MYSQL=false UPDATE_MYSQL=false
fi 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" #clear
echo "" #echo -e "\033[21G\033[32mInstallationsscript für die Mysql Datenbank \033[m"
#echo ""
echo -e "\033[32m--\033[m" echo -e "\033[32m--\033[m"
echo "" echo ""
echo "Gib die Versionsnummer der MySQL-Distribution an." echo "Gib die Versionsnummer der zu installierenden MySQL-Distribution an."
echo "" echo ""
MYSQL_VERSION= MYSQL_VERSION=
while [ "X$MYSQL_VERSION" = "X" ] while [ "X$MYSQL_VERSION" = "X" ]
@ -211,6 +224,19 @@ do
done 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 ""
echo -e "\033[32m--\033[m" echo -e "\033[32m--\033[m"
echo "" echo ""
@ -226,6 +252,20 @@ do
fi fi
done 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 ""
echo -e "\033[32m--\033[m" echo -e "\033[32m--\033[m"
echo "" echo ""
@ -295,12 +335,17 @@ do
fi fi
done done
clear #clear
echo -e "\033[21G\033[32mInstallationsscript für die Mysql Datenbank \033[m" #echo -e "\033[21G\033[32mInstallationsscript für die Mysql Datenbank \033[m"
echo "" echo ""
echo -e "\033[32m--\033[m" echo -e "\033[32m--\033[m"
echo "" 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 "" echo ""
_MYSQL_ROOT_PW_1="X" _MYSQL_ROOT_PW_1="X"
_MYSQL_ROOT_PW_2="Y" _MYSQL_ROOT_PW_2="Y"
@ -323,23 +368,37 @@ do
if [ "$_MYSQL_ROOT_PW_1" != "$_MYSQL_ROOT_PW_2" ];then if [ "$_MYSQL_ROOT_PW_1" != "$_MYSQL_ROOT_PW_2" ];then
echo -e "\n\t\033[33m\033[1mPassworteingaben sind nicht identisch!\033[m\n" echo -e "\n\t\033[33m\033[1mPassworteingaben sind nicht identisch!\033[m\n"
else else
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 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 fi
done done
if $UPDATE_MYSQL ; then if $UPDATE_MYSQL ; then
__SYMLINK_INITSCRIPT=nein # __SYMLINK_INITSCRIPT=nein
__SYMLINK_INSTALL_DIR=nein # __SYMLINK_INSTALL_DIR=nein
__SYMLINK_DATA_DIR=nein # __SYMLINK_DATA_DIR=nein
else #else
__SYMLINK_INITSCRIPT=ja __SYMLINK_INITSCRIPT=ja
__SYMLINK_INSTALL_DIR=ja __SYMLINK_INSTALL_DIR=ja
__SYMLINK_DATA_DIR=ja __SYMLINK_DATA_DIR=ja
fi fi
clear #clear
echo -e "\033[21G\033[32mInstallationsscript für die Mysql Datenbank \033[m" #echo -e "\033[21G\033[32mInstallationsscript für die Mysql Datenbank \033[m"
echo "" #echo ""
echo -e "\033[32m--\033[m" echo -e "\033[32m--\033[m"
echo "" echo ""
echo "Symlinks:" echo "Symlinks:"
@ -447,7 +506,12 @@ echo ""
if ! $UPDATE_MYSQL ; then if ! $UPDATE_MYSQL ; then
echo -e "-- \033[33m\033[1mNeusistallation\033[m --" echo -e "-- \033[33m\033[1mNeusistallation\033[m --"
else 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 fi
echo "" echo ""
echo "Linuxdistribution.........: $DISTRIBUTION" echo "Linuxdistribution.........: $DISTRIBUTION"
@ -535,7 +599,12 @@ echo "## -" >> ${logdir}/main.log
if ! $UPDATE_MYSQL ; then if ! $UPDATE_MYSQL ; then
echo "## - Neusistallation" >> ${logdir}/main.log echo "## - Neusistallation" >> ${logdir}/main.log
else 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 fi
echo "## -" >> ${logdir}/main.log echo "## -" >> ${logdir}/main.log
echo "## - Linuxdistribution.........: $DISTRIBUTION" >> ${logdir}/main.log echo "## - Linuxdistribution.........: $DISTRIBUTION" >> ${logdir}/main.log
@ -560,6 +629,11 @@ echo "" >> ${logdir}/main.log
echo "" >> ${logdir}/main.log echo "" >> ${logdir}/main.log
echo "UPDATE_MYSQL=$UPDATE_MYSQL" >> ${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 "" >> ${logdir}/main.log
echo "DISTRIBUTION=$DISTRIBUTION" >> ${logdir}/main.log echo "DISTRIBUTION=$DISTRIBUTION" >> ${logdir}/main.log
echo "" >> ${logdir}/main.log echo "" >> ${logdir}/main.log
@ -586,19 +660,31 @@ elif [ -f /etc/init.d/mysql ];then
_MYSQL_INITSCRIPT="mysql" _MYSQL_INITSCRIPT="mysql"
fi fi
if ! $UPDATE_MYSQL ; then if [[ -z "$_MYSQL_INITSCRIPT" ]] && $UPDATE_MYSQL ; then
fatal "Kein start/stop script gefunden.."
fi
if [ "X${_MYSQL_INITSCRIPT}X" != "XX" ];then echo ""
PID=`ps aux | grep "mysqld_safe" | grep -v grep | awk '{print$2}'` ## - Stop MySQL Service if running
if [ "X${PID}X" != "XX" ];then ## -
echononl "Stoppe mysql Server.." 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 "" >> ${logdir}/main.log
echo "/etc/init.d/$_MYSQL_INITSCRIPT stop" >> ${logdir}/main.log echo "/etc/init.d/$_MYSQL_INITSCRIPT stop" >> ${logdir}/main.log
/etc/init.d/$_MYSQL_INITSCRIPT stop >> ${logdir}/main.log 2>&1 /etc/init.d/$_MYSQL_INITSCRIPT stop >> ${logdir}/main.log 2>&1
fi
sleep 5 sleep 5
PID=`ps aux | grep "mysqld_safe" | grep -v grep | awk '{print$2}'` PID=`ps aux | grep "mysqld_safe" | grep -v grep | awk '{print$2}'`
if [ "X${PID}X" = "XX" ]; then if [[ "X${PID}X" = "XX" ]]; then
echo_ok echo_ok
else else
echo_failed echo_failed
@ -614,8 +700,30 @@ if ! $UPDATE_MYSQL ; then
echo_failed echo_failed
fi fi
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 fi
else
echo_skipped
fi
if ! $UPDATE_MYSQL ; then
if [ "X${_MYSQL_INITSCRIPT}X" != "XX" ];then
## - Entferne symbolische Links aus den Run Level Verzeichnissen ## - Entferne symbolische Links aus den Run Level Verzeichnissen
## - ## -
@ -639,7 +747,7 @@ if ! $UPDATE_MYSQL ; then
echo_ok echo_ok
else else
echo_failed echo_failed
fatal "Kann Mexistierendes Initskript nicht entfernen." fatal "Kann existierendes Initskript nicht entfernen."
fi fi
fi fi
fi fi
@ -761,10 +869,37 @@ if ! $UPDATE_MYSQL ; then
# fi # fi
echononl "Adding Group \"$MYSQL_GROUP\".." echononl "Erstelle Datenbank-Verzeichnis \"$MYSQL_DATA_DIR\".."
if cat /etc/group | grep -e "^${MYSQL_GROUP}:" > /dev/null 2>&1 ; then echo "" >> ${logdir}/main.log
echo_skipped 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 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
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 groupadd -r $MYSQL_GROUP > ${logdir}/groupadd.log 2>&1
if [ "$?" = "0" ]; then if [ "$?" = "0" ]; then
echo_ok echo_ok
@ -772,12 +907,12 @@ if ! $UPDATE_MYSQL ; then
echo_failed echo_failed
fatal Kann Gruppe \"${MYSQL_GROUP}\" nicht erstellen.. fatal Kann Gruppe \"${MYSQL_GROUP}\" nicht erstellen..
fi fi
fi fi
echononl "Adding User \"$MYSQL_USER\".." echononl "Adding User \"$MYSQL_USER\".."
if id -u $MYSQL_USER > /dev/null 2>&1; then if id -u $MYSQL_USER > /dev/null 2>&1; then
echo_skipped echo_skipped
else else
useradd -r -M -d /noexistent -s /bin/false -g $MYSQL_GROUP $MYSQL_USER > ${logdir}/useradd.log 2>&1 useradd -r -M -d /noexistent -s /bin/false -g $MYSQL_GROUP $MYSQL_USER > ${logdir}/useradd.log 2>&1
if [ "$?" = "0" ]; then if [ "$?" = "0" ]; then
echo_ok echo_ok
@ -785,35 +920,9 @@ if ! $UPDATE_MYSQL ; then
echo_failed echo_failed
fatal Kann User \"${MYSQL_USER}\" nicht erstellen.. fatal Kann User \"${MYSQL_USER}\" nicht erstellen..
fi fi
fi
fi fi
if [ -d $MYSQL_DATA_DIR ]; then
echononl "Verschiebe exitierendes MySQL Datenbank-Verzeichnis ..."
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
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" echononl "Setze Besitzer \"${MYSQL_USER}:${MYSQL_GROUP}\" für Datenbank-Verzeichnis"
echo "" >> ${logdir}/main.log echo "" >> ${logdir}/main.log
echo "chown -R ${MYSQL_USER}:${MYSQL_GROUP} ${MYSQL_DATA_DIR}" >> ${logdir}/main.log echo "chown -R ${MYSQL_USER}:${MYSQL_GROUP} ${MYSQL_DATA_DIR}" >> ${logdir}/main.log
@ -999,6 +1108,98 @@ else
echo_skipped echo_skipped
fi 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 if $SYMLINK_INITSCRIPT ; then
@ -1018,7 +1219,8 @@ if $SYMLINK_INITSCRIPT ; then
echononl "Erstelle Symlink \"/etc/init.d/mysql.server\".." echononl "Erstelle Symlink \"/etc/init.d/mysql.server\".."
echo "" >> ${logdir}/main.log echo "" >> ${logdir}/main.log
echo "ln -s $MYSQL_INSTALL_DIR/support-files/mysql.server /etc/init.d/mysql.server" >> ${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 if [ "$?" = "0" ]; then
echo_ok echo_ok
else else
@ -1034,99 +1236,11 @@ if $SYMLINK_INITSCRIPT ; then
echo_ok echo_ok
else else
echo_failed 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
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 .." echononl "Füge `dirname $MYSQL_INSTALL_DIR`/mysql/bin zur PATH Variable hinzu .."
if [ -f /etc/profile ]; then if [ -f /etc/profile ]; then
@ -1178,26 +1292,30 @@ fi
echo echo
echononl "Richte MySQL Systemtabellen ein.." echononl "Richte MySQL Systemtabellen ein.."
cd $MYSQL_INSTALL_DIR if ! $UPDATE_MYSQL ; then
echo "" >> ${logdir}/main.log cd $MYSQL_INSTALL_DIR
echo "./bin/mysqld --initialize-insecure \ " >> ${logdir}/main.log echo "" >> ${logdir}/main.log
echo " --user=$MYSQL_USER \ " >> ${logdir}/main.log echo "./bin/mysqld --initialize-insecure \ " >> ${logdir}/main.log
echo " --basedir=$MYSQL_INSTALL_DIR \ " >> ${logdir}/main.log echo " --user=$MYSQL_USER \ " >> ${logdir}/main.log
echo " --datadir=$MYSQL_DATA_DIR \ " >> ${logdir}/main.log echo " --basedir=$MYSQL_INSTALL_DIR \ " >> ${logdir}/main.log
echo " --language=$MYSQL_INSTALL_DIR/share/german" >> ${logdir}/main.log echo " --datadir=$MYSQL_DATA_DIR \ " >> ${logdir}/main.log
echo "" >> ${logdir}/main.log echo " --language=$MYSQL_INSTALL_DIR/share/german" >> ${logdir}/main.log
echo "" >> ${logdir}/main.log
./bin/mysqld --initialize-insecure \ ./bin/mysqld --initialize-insecure \
--user=$MYSQL_USER \ --user=$MYSQL_USER \
--basedir=$MYSQL_INSTALL_DIR \ --basedir=$MYSQL_INSTALL_DIR \
--datadir=$MYSQL_DATA_DIR \ --datadir=$MYSQL_DATA_DIR \
--lc-messages-dir=$MYSQL_INSTALL_DIR/share/german \ --lc-messages-dir=$MYSQL_INSTALL_DIR/share/german \
>> ${logdir}/main.log 2>&1 >> ${logdir}/main.log 2>&1
if [ "$?" = "0" ]; then if [ "$?" = "0" ]; then
echo_ok echo_ok
else else
echo_failed echo_failed
fatal Das Einrichten der MySQL Systemtabellen ist fehlgeschlagen.. fatal Das Einrichten der MySQL Systemtabellen ist fehlgeschlagen..
fi
else
echo_skipped
fi fi
echononl "Create directory \"mysql-files\".." echononl "Create directory \"mysql-files\".."
@ -1251,8 +1369,8 @@ else
fi fi
echononl "Sichere Konfigurationsdatei.."
if [ -f ${MYSQL_INSTALL_DIR}/my.cnf ]; then if [ -f ${MYSQL_INSTALL_DIR}/my.cnf ]; then
echononl "Sichere Konfigurationsdatei.."
echo "" >> ${logdir}/main.log echo "" >> ${logdir}/main.log
echo "${MYSQL_INSTALL_DIR}/my.cnf ${MYSQL_INSTALL_DIR}" >> ${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 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 echo_failed
error Konnte Konfigurationsdatei ${MYSQL_INSTALL_DIR}/my.cnf nicht sichern.. error Konnte Konfigurationsdatei ${MYSQL_INSTALL_DIR}/my.cnf nicht sichern..
fi fi
else
echo_skipped
fi 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 if ! $UPDATE_MYSQL || $_new_cnf_needed ; then
echo "_number_cpus=`grep "^processor" /proc/cpuinfo | sort -u | wc -l`" >> ${logdir}/main.log echononl "Erstelle Konfigurationsdatei ${MYSQL_INSTALL_DIR}/my.cnf.."
_number_cpus=`grep "^processor" /proc/cpuinfo | sort -u | wc -l`
echo "" >> ${logdir}/main.log echo "" >> ${logdir}/main.log
echo "let MYSQL_THREAD_CONCURRENCY=$_number_cpus*2" >> ${logdir}/main.log echo "_number_cpus=`grep "^processor" /proc/cpuinfo | sort -u | wc -l`" >> ${logdir}/main.log
let MYSQL_THREAD_CONCURRENCY=$_number_cpus*2 _number_cpus=`grep "^processor" /proc/cpuinfo | sort -u | wc -l`
echo "" >> ${logdir}/main.log echo "" >> ${logdir}/main.log
echo "\$MYSQL_THREAD_CONCURRENCY = $MYSQL_THREAD_CONCURRENCY" >> ${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. # Example MySQL config file for very large systems.
# #
# This is for a large system with memory of 1G-2G where the system runs mainly # This is for a large system with memory of 1G-2G where the system runs mainly
@ -2031,15 +2171,15 @@ ft_min_word_len = 3
interactive-timeout interactive-timeout
EOF EOF
if [ "$?" = "0" ]; then if [ "$?" = "0" ]; then
echo_ok echo_ok
else else
echo_failed echo_failed
error Konnte Konfigurationsdatei \"${MYSQL_INSTALL_DIR}/my.cnf\" nicht erstellen.. error Konnte Konfigurationsdatei \"${MYSQL_INSTALL_DIR}/my.cnf\" nicht erstellen..
fi fi
echononl "Kopiere \"stopwords_utf8_iso8859-15.txt\" -> ${MYSQL_INSTALL_DIR}.." echononl "Kopiere \"stopwords_utf8_iso8859-15.txt\" -> ${MYSQL_INSTALL_DIR}.."
if [ -f "${MYSQL_SRC_BASE_DIR}/stopwords_utf8_iso8859-15.txt" ];then 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} cp ${MYSQL_SRC_BASE_DIR}/stopwords_utf8_iso8859-15.txt ${MYSQL_INSTALL_DIR}
if [ "$?" = "0" ]; then if [ "$?" = "0" ]; then
echo_ok echo_ok
@ -2059,11 +2199,12 @@ if [ -f "${MYSQL_SRC_BASE_DIR}/stopwords_utf8_iso8859-15.txt" ];then
echo_failed echo_failed
warn "Konnte stopwords_utf8_iso8859-15.txt nicht nach ${MYSQL_INSTALL_DIR} kopieren" warn "Konnte stopwords_utf8_iso8859-15.txt nicht nach ${MYSQL_INSTALL_DIR} kopieren"
fi fi
else else
echo_skipped echo_skipped
warn "Konnte ${MYSQL_SRC_BASE_DIR}/stopwords_utf8_iso8859-15.txt finden." warn "Konnte ${MYSQL_SRC_BASE_DIR}/stopwords_utf8_iso8859-15.txt finden."
fi fi
fi
#echononl "Kopiere Startscript nach /etc/init.d/mysql.server.." #echononl "Kopiere Startscript nach /etc/init.d/mysql.server.."
#echo "" >> ${logdir}/main.log #echo "" >> ${logdir}/main.log
@ -2101,8 +2242,6 @@ if ! $UPDATE_MYSQL ; then
if $SYSTEMD_EXISTS ; then if $SYSTEMD_EXISTS ; then
echo "systemctl enable mysql.server" >> ${logdir}/main.log echo "systemctl enable mysql.server" >> ${logdir}/main.log
systemctl enable mysql.server >> ${logdir}/main.log 2>&1 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 else
echo "update-rc.d mysql.server defaults" >> ${logdir}/main.log echo "update-rc.d mysql.server defaults" >> ${logdir}/main.log
update-rc.d mysql.server defaults >> ${logdir}/main.log 2>&1 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.." error "Konnte MySQL Init Script Links (autom. boot) nicht erstellen.."
fi fi
fi fi
fi
echononl "Starte MySQL Datenbankserver.." echononl "Run 'systemctl daemon-reload' to reload units."
if $SYSTEMD_EXISTS ; then
echo "" >> ${logdir}/main.log echo "" >> ${logdir}/main.log
if $SYSTEMD_EXISTS ; then echo "systemctl daemon-reload" >> ${logdir}/main.log
echo "systemctl start mysql.server" >> ${logdir}/main.log systemctl daemon-reload >> ${logdir}/main.log 2>&1
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 if [ "$?" = "0" ]; then
echo_ok echo_ok
else else
echo_failed echo_failed
error Konnte MySQL Datenbankserver nicht starten.. error "Run 'systemctl daemon-reload' failed!"
fi fi
else
echo_skipped
fi fi
echononl "Run \"mysql_upgrade -uroot\".." echononl "Starte MySQL Datenbankserver.."
echo "" >> ${logdir}/main.log echo "" >> ${logdir}/main.log
echo "${MYSQL_INSTALL_DIR}/bin/mysql_upgrade -uroot" >> ${logdir}/main.log if $SYSTEMD_EXISTS ; then
${MYSQL_INSTALL_DIR}/bin/mysql_upgrade -uroot >> ${logdir}/main.log 2>&1 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 if [ "$?" = "0" ]; then
echo_ok echo_ok
else else
@ -2146,90 +2300,119 @@ else
error "Script \"mysql_upgrade -uroot\" failed!" error "Script \"mysql_upgrade -uroot\" failed!"
fi fi
echo "" >> ${logdir}/main.log if ! $UPDATE_MYSQL ; then
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 "Setze root Passwort für den MySQL Zugang" ## - Delete rows with empty 'User' from table mysql.user
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 echo "" >> ${logdir}/main.log
${MYSQL_INSTALL_DIR}/bin/mysql -uroot mysql -N -s -e "UPDATE user set authentication_string = password('$MYSQL_ROOT_PW')" \ 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
## - 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 >> ${logdir}/main.log 2>&1
if [ "$?" = "0" ]; then if [ "$?" = "0" ]; then
echo_ok echo_ok
else else
echo_failed echo_failed
error Konnte MySQL root Zugang fü den MySQL Server nicht setzen.. error Konnte MySQL root Zugang fü den MySQL Server nicht setzen..
fi fi
echononl "Neu Einlesen der Berechtigung (MySQL Server).." ## - Flush privileges
echo "" >> ${logdir}/main.log ## -
echo "${MYSQL_INSTALL_DIR}/bin/mysql -uroot mysql -N -s -e \"FLUSH PRIVILEGES\"" >> ${logdir}/main.log echononl "Neu Einlesen der Berechtigung (MySQL Server).."
${MYSQL_INSTALL_DIR}/bin/mysql -uroot mysql -N -s -e "FLUSH PRIVILEGES" >> ${logdir}/main.log 2>&1 echo "" >> ${logdir}/main.log
if [ "$?" = "0" ]; then 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 echo_ok
else else
echo_failed echo_failed
error Das Laden/Erneuern der Berechtigungen für die MySQL Datenbank ist fehlgeschlagen.. error Das Laden/Erneuern der Berechtigungen für die MySQL Datenbank ist fehlgeschlagen..
fi
fi fi
echo _sys_maint_cnf_needed=false
echononl "Erstelle Passwort für maintance (MySQL) User.." if $UPDATE_MYSQL ; then
echo "" >> ${logdir}/main.log echononl "Copy 'sys-maint.cnf from old installation to the new one.."
PW_GEN=`which pwgen` echo "" >> ${logdir}/main.log
if [ -z "$PW_GEN" ]; then 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
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 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 _maint_passwd=`cat /dev/urandom|tr -dc "a-zA-Z0-9-_\$\?" | fold -w16 | head -n 1` >> ${logdir}/main.log 2>&1
else else
echo "_maint_passwd=\`$PW_GEN -v -B 16 1\`" >> ${logdir}/main.log 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 _maint_passwd=`$PW_GEN -v -B 16 1` >> ${logdir}/main.log 2>&1
fi fi
if [ "$?" = "0" ]; then if [ "$?" = "0" ]; then
echo_ok echo_ok
else else
echo_failed echo_failed
error Konnte Passwort für maintance \(MySQL\) User nicht erstellen.. error Konnte Passwort für maintance \(MySQL\) User nicht erstellen..
fi fi
_maint_user=sys-maint _maint_user=sys-maint
echononl "Erstelle maintance MySQL User \"${_maint_user}\" - localhost.." echononl "Erstelle maintance MySQL User \"${_maint_user}\" - localhost.."
echo "" >> ${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 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 ${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 if [ "$?" = "0" ]; then
echo_ok echo_ok
else else
echo_failed echo_failed
error Konnte \(MySQL\) User \"${_maint_user}\" nicht erstellen.. error Konnte \(MySQL\) User \"${_maint_user}\" nicht erstellen..
fi fi
echononl "Give \"Grant\" permission to MySQL User \"${_maint_user}\".." echononl "Give \"Grant\" permission to MySQL User \"${_maint_user}\".."
echo "" >> ${logdir}/main.log 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 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 ${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 if [ "$?" = "0" ]; then
echo_ok echo_ok
else else
echo_failed echo_failed
error Giving \"Grant\"-permission to \(MySQL\) User \"${_maint_user}\" failed error Giving \"Grant\"-permission to \(MySQL\) User \"${_maint_user}\" failed
fi fi
echononl "Neu Einlesen der Berechtigung (MySQL Server).." echononl "Neu Einlesen der Berechtigung (MySQL Server).."
echo "" >> ${logdir}/main.log echo "" >> ${logdir}/main.log
echo "${MYSQL_INSTALL_DIR}/bin/mysql -uroot -p$MYSQL_ROOT_PW mysql -N -s -e \"FLUSH PRIVILEGES\"" >> ${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 ${MYSQL_INSTALL_DIR}/bin/mysql -uroot -p$MYSQL_ROOT_PW mysql -N -s -e "FLUSH PRIVILEGES" >> ${logdir}/main.log 2>&1
if [ "$?" = "0" ]; then if [ "$?" = "0" ]; then
echo_ok echo_ok
else else
echo_failed echo_failed
error Das Laden/Erneuern der Berechtigungen für die MySQL Datenbank ist fehlgeschlagen.. error Das Laden/Erneuern der Berechtigungen für die MySQL Datenbank ist fehlgeschlagen..
fi fi
_maint_conf_file=${MYSQL_INSTALL_DIR}/sys-maint.cnf _maint_conf_file=${MYSQL_INSTALL_DIR}/sys-maint.cnf
echononl "Erstelle ${_maint_conf_file}.." echononl "Erstelle ${_maint_conf_file}.."
cat << EOF > ${MYSQL_INSTALL_DIR}/sys-maint.cnf cat << EOF > ${MYSQL_INSTALL_DIR}/sys-maint.cnf
[client] [client]
host = localhost host = localhost
user = $_maint_user user = $_maint_user
@ -2242,11 +2425,12 @@ password = $_maint_passwd
socket = $MYSQL_UNIX_SOCKET socket = $MYSQL_UNIX_SOCKET
basedir = /usr basedir = /usr
EOF EOF
if [ "$?" = "0" ]; then if [ "$?" = "0" ]; then
echo_ok echo_ok
else else
echo_failed echo_failed
error Konnte Konfigurationsdatei \"${MYSQL_INSTALL_DIR}/sys-maint.cnf\" nicht erstellen.. error Konnte Konfigurationsdatei \"${MYSQL_INSTALL_DIR}/sys-maint.cnf\" nicht erstellen..
fi
fi fi
@ -2282,4 +2466,4 @@ fi
echo echo
exit exit 0