2096 lines
63 KiB
Bash
Executable File
2096 lines
63 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
|
|
_MYSQL_VERSION=5.5.47
|
|
|
|
_MYSQL_SRC_BASE_DIR=/usr/local/src/mysql
|
|
|
|
_MYSQL_LOG_DIR=/var/log/mysql
|
|
|
|
_MYSQL_PORT=3306
|
|
_MYSQL_UNIX_SOCKET=/tmp/mysql.sock
|
|
|
|
|
|
_MYSQL_USER=mysql
|
|
_MYSQL_GROUP=mysql
|
|
|
|
_DISTRIBUTION=Debian
|
|
|
|
|
|
## - Let make use multiple cores (-j<number of cores +1>)
|
|
## -
|
|
export MAKEFLAGS=-j$(expr `grep "^processor" /proc/cpuinfo | sort -u | wc -l` + 1)
|
|
|
|
|
|
## --- Some functions
|
|
## ---
|
|
echononl(){
|
|
echo X\\c > /tmp/shprompt$$
|
|
if [ `wc -c /tmp/shprompt$$ | awk '{print $1}'` -eq 1 ]; then
|
|
echo "$*\\c" 1>&2
|
|
else
|
|
echo -e -n "$*" 1>&2
|
|
fi
|
|
rm /tmp/shprompt$$
|
|
}
|
|
|
|
fatal(){
|
|
echo ""
|
|
echo -e "Fehler: $*"
|
|
echo ""
|
|
echo -e "\t\033[31m\033[1mInstalllation wird abgebrochen\033[m\033[m"
|
|
echo ""
|
|
exit 1
|
|
}
|
|
|
|
warn (){
|
|
echo ""
|
|
echo -e "\t[ \033[33m\033[1mWarning\033[m ]: $*"
|
|
echo ""
|
|
}
|
|
|
|
|
|
echo_ok() {
|
|
echo -e "\033[75G[ \033[32mok\033[m ]"
|
|
## echo -e " [ ok ]"
|
|
}
|
|
echo_failed(){
|
|
echo -e "\033[75G[ \033[1;31mfailed\033[m ]"
|
|
## echo -e " [ failed ]"
|
|
}
|
|
echo_skipped() {
|
|
echo -e "\033[75G[ \033[33m\033[1mskipped\033[m ]"
|
|
}
|
|
## ---
|
|
## --- END: functions
|
|
|
|
_curdir=`pwd`
|
|
|
|
|
|
clear
|
|
echo -e "\033[21G\033[32mInstallationsscript für die Mysql Datenbank \033[m"
|
|
echo
|
|
|
|
## - root user?
|
|
## -
|
|
if [ "$(id -u)" != "0" ]; then
|
|
fatal Skript muss als \"root\" ausgeführt werden
|
|
fi
|
|
|
|
DISTRIBUTION=
|
|
echo ""
|
|
echo -e "\033[32m--\033[m"
|
|
echo ""
|
|
echo "Um welche Linux Distribution handelt es sich?"
|
|
echo ""
|
|
echo "[1] Debian"
|
|
echo "[2] andere"
|
|
echo ""
|
|
echononl "Eingabe: "
|
|
|
|
while [ "$DISTRIBUTION" != "Debian" -a "$DISTRIBUTION" != "other" ];do
|
|
read OPTION
|
|
case $OPTION in
|
|
1) DISTRIBUTION="Debian"
|
|
;;
|
|
2) DISTRIBUTION="other"
|
|
;;
|
|
*) echo ""
|
|
echo -e "\tFalsche Eingabe ! [ 1 = Debian ; 2 = andere ]"
|
|
echo ""
|
|
echononl "Eingabe:"
|
|
;;
|
|
esac
|
|
done
|
|
|
|
_UPDATE_MYSQL=""
|
|
echo ""
|
|
echo -e "\033[32m--\033[m"
|
|
echo ""
|
|
echo "Soll eine vorhanden MySQL Installation geupdateted werden?"
|
|
echo ""
|
|
echo "[1] Neuinstallation"
|
|
echo "[2] Update vorhandener Installation"
|
|
echo ""
|
|
echononl "Eingabe: "
|
|
|
|
|
|
while [ "$_UPDATE_MYSQL" != "update" -a "$_UPDATE_MYSQL" != "new" ];do
|
|
read OPTION
|
|
case $OPTION in
|
|
1) _UPDATE_MYSQL="new"
|
|
;;
|
|
2) _UPDATE_MYSQL="update"
|
|
;;
|
|
*) echo ""
|
|
echo -e "\tFalsche Eingabe ! [ 1 = Neuinstallation ; 2 = Update ]"
|
|
echo ""
|
|
echononl "Eingabe:"
|
|
;;
|
|
esac
|
|
done
|
|
if [ "$_UPDATE_MYSQL" = "update" ];then
|
|
UPDATE_MYSQL=true
|
|
else
|
|
UPDATE_MYSQL=false
|
|
fi
|
|
|
|
|
|
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 ""
|
|
MYSQL_VERSION=
|
|
while [ "X$MYSQL_VERSION" = "X" ]
|
|
do
|
|
echononl "MySQL Version [$_MYSQL_VERSION]: "
|
|
read MYSQL_VERSION
|
|
if [ "X$MYSQL_VERSION" = "X" ]; then
|
|
MYSQL_VERSION=$_MYSQL_VERSION
|
|
fi
|
|
|
|
_MYSQL_INSTALL_DIR=/usr/local/mysql-$MYSQL_VERSION
|
|
_MYSQL_DATA_DIR=/data/mysql-$MYSQL_VERSION
|
|
distfile=mysql-${MYSQL_VERSION}.tar.gz
|
|
done
|
|
MYSQL_MAJOR_VERSION=`echo $MYSQL_VERSION | cut -d '.' -f1,2`
|
|
|
|
echo ""
|
|
echo -e "\033[32m--\033[m"
|
|
echo ""
|
|
echo "Gib den Namen des MySQL Sourceverzeichnisses an."
|
|
echo ""
|
|
MYSQL_SRC_BASE_DIR=
|
|
while [ "X$MYSQL_SRC_BASE_DIR" = "X" ]
|
|
do
|
|
echononl "MySQL Sourceverzeichnis [${_MYSQL_SRC_BASE_DIR}]: "
|
|
read MYSQL_SRC_BASE_DIR
|
|
if [ "X$MYSQL_SRC_BASE_DIR" = "X" ]; then
|
|
MYSQL_SRC_BASE_DIR=$_MYSQL_SRC_BASE_DIR
|
|
fi
|
|
done
|
|
MYSQL_SRC_DIR=${MYSQL_SRC_BASE_DIR}/mysql-$MYSQL_VERSION
|
|
|
|
echo ""
|
|
echo -e "\033[32m--\033[m"
|
|
echo ""
|
|
echo "Gib den Namen des Verzeichnisses in das MySQL installiert werden soll an."
|
|
echo ""
|
|
MYSQL_INSTALL_DIR=
|
|
while [ "X$MYSQL_INSTALL_DIR" = "X" ]
|
|
do
|
|
echononl "MySQL Installationsverzeichnis [${_MYSQL_INSTALL_DIR}]: "
|
|
read MYSQL_INSTALL_DIR
|
|
if [ "X$MYSQL_INSTALL_DIR" = "X" ]; then
|
|
MYSQL_INSTALL_DIR=$_MYSQL_INSTALL_DIR
|
|
LINK=yes
|
|
fi
|
|
|
|
logdir=${MYSQL_SRC_BASE_DIR}/log-$MYSQL_VERSION
|
|
|
|
done
|
|
|
|
echo ""
|
|
echo -e "\033[32m--\033[m"
|
|
echo ""
|
|
echo "Gib den Namen des Verzeichnisses für die MySQL-Datenbanken an."
|
|
echo ""
|
|
MYSQL_DATA_DIR=
|
|
while [ "X$MYSQL_DATA_DIR" = "X" ]
|
|
do
|
|
echononl "MySQL Datenbankverzeichnis [$_MYSQL_DATA_DIR]: "
|
|
read MYSQL_DATA_DIR
|
|
if [ "X$MYSQL_DATA_DIR" = "X" ]; then
|
|
MYSQL_DATA_DIR=$_MYSQL_DATA_DIR
|
|
fi
|
|
done
|
|
|
|
echo ""
|
|
echo -e "\033[32m--\033[m"
|
|
echo ""
|
|
echo "Gib den Namen des LOG-Verzeichnisses für die MySQL an. !! NICHT für binäre logfiles !!"
|
|
echo ""
|
|
MYSQL_LOG_DIR=
|
|
while [ "X$MYSQL_LOG_DIR" = "X" ]
|
|
do
|
|
echononl "MySQL LOG Verzeichniss [$_MYSQL_LOG_DIR]: "
|
|
read MYSQL_LOG_DIR
|
|
if [ "X$MYSQL_LOG_DIR" = "X" ]; then
|
|
MYSQL_LOG_DIR=$_MYSQL_LOG_DIR
|
|
fi
|
|
done
|
|
|
|
echo ""
|
|
echo -e "\033[32m--\033[m"
|
|
echo ""
|
|
echo "Gib den TCP Port für MySQL an (voreingestell \"${MYSQL_PORT}\")."
|
|
echo ""
|
|
MYSQL_PORT=
|
|
while [ "X$MYSQL_PORT" = "X" ]
|
|
do
|
|
echononl "MySQL TCP Port [$_MYSQL_PORT]: "
|
|
read MYSQL_PORT
|
|
if [ "X$MYSQL_PORT" = "X" ]; then
|
|
MYSQL_PORT=$_MYSQL_PORT
|
|
fi
|
|
done
|
|
|
|
echo ""
|
|
echo -e "\033[32m--\033[m"
|
|
echo ""
|
|
echo "Gib den Unix Socket für MySQL an (voreingestell \"${_MYSQL_UNIX_SOCKET}\")."
|
|
echo ""
|
|
MYSQL_UNIX_SOCKET=
|
|
while [ "X$MYSQL_UNIX_SOCKET" = "X" ]
|
|
do
|
|
echononl "MySQL UNIX Socket [$_MYSQL_UNIX_SOCKET]: "
|
|
read MYSQL_UNIX_SOCKET
|
|
if [ "X$MYSQL_UNIX_SOCKET" = "X" ]; then
|
|
MYSQL_UNIX_SOCKET=$_MYSQL_UNIX_SOCKET
|
|
fi
|
|
done
|
|
|
|
echo ""
|
|
echo "--"
|
|
echo ""
|
|
echo "Gib den User-Namen und die User-Gruppe unter dem der MySQL-Daemon laufen soll an."
|
|
echo ""
|
|
MYSQL_USER=
|
|
while [ "X$MYSQL_USER" = "X" ]
|
|
do
|
|
echononl "MySQL-User [${_MYSQL_USER}]: "
|
|
read MYSQL_USER
|
|
if [ "X$MYSQL_USER" = "X" ]; then
|
|
MYSQL_USER=$_MYSQL_USER
|
|
fi
|
|
done
|
|
MYSQL_GROUP=
|
|
while [ "X$MYSQL_GROUP" = "X" ]
|
|
do
|
|
echononl "MySQL-Gruppe [$MYSQL_USER]: "
|
|
read MYSQL_GROUP
|
|
if [ "X$MYSQL_GROUP" = "X" ]; then
|
|
MYSQL_GROUP=$MYSQL_USER
|
|
fi
|
|
done
|
|
|
|
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.."
|
|
echo ""
|
|
_MYSQL_ROOT_PW_1="X"
|
|
_MYSQL_ROOT_PW_2="Y"
|
|
while [ "$_MYSQL_ROOT_PW_1" != "$_MYSQL_ROOT_PW_2" ]
|
|
do
|
|
echononl "Passworteingabe: "
|
|
read -s _MYSQL_ROOT_PW_1
|
|
echo
|
|
if [ "X$_MYSQL_ROOT_PW_1" = "X" ]; then
|
|
echo -e "\n\t\033[33m\033[1mPassworteingabe erforderlich!\033[m\n"
|
|
continue
|
|
fi
|
|
echononl "Passwortwiederholung: "
|
|
read -s _MYSQL_ROOT_PW_2
|
|
echo
|
|
if [ "X$_MYSQL_ROOT_PW_2" = "X" ]; then
|
|
echo -e "\n\t\033[33m\033[1mPasswortwiederholung erforderlich!\033[m\n"
|
|
continue
|
|
fi
|
|
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
|
|
fi
|
|
done
|
|
|
|
if $UPDATE_MYSQL ; then
|
|
__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 ""
|
|
echo -e "\033[32m--\033[m"
|
|
echo ""
|
|
echo "Symlinks:"
|
|
echo ""
|
|
echo " - Setze Symlink für das Init Skript (/etc/init.d/mysql.server)"
|
|
echo " - Setze Sysmlink for das Installationsverzeichnis `dirname $MYSQL_INSTALL_DIR`/mysql"
|
|
echo " - Setze Sysmlink for das Datenverzeichnis `dirname $MYSQL_DATA_DIR`/mysql"
|
|
echo ""
|
|
_SYMLINK_INITSCRIPT=""
|
|
echononl "Sysmlink für das Init Skript? (ja/nein) [${__SYMLINK_INITSCRIPT}]: "
|
|
read _SYMLINK_INITSCRIPT
|
|
if [ "X$_SYMLINK_INITSCRIPT" = "X" ];then
|
|
_SYMLINK_INITSCRIPT=$__SYMLINK_INITSCRIPT
|
|
fi
|
|
|
|
while [ "$_SYMLINK_INITSCRIPT" != "ja" \
|
|
-a "$_SYMLINK_INITSCRIPT" != "Ja" \
|
|
-a "$_SYMLINK_INITSCRIPT" != "nein" \
|
|
-a "$_SYMLINK_INITSCRIPT" != "Nein" ]; do
|
|
echononl "Falsche Eingabe. (ja/nein): "
|
|
read _SYMLINK_INITSCRIPT
|
|
done
|
|
if [ "$_SYMLINK_INITSCRIPT" = "ja" -o "$_SYMLINK_INITSCRIPT" = "Ja" ]; then
|
|
SYMLINK_INITSCRIPT=true
|
|
else
|
|
SYMLINK_INITSCRIPT=false
|
|
fi
|
|
|
|
echo ""
|
|
_SYMLINK_INSTALL_DIR=""
|
|
echononl "Sysmlink für das Installationsverzeichnis? (ja/nein) [${__SYMLINK_INSTALL_DIR}]: "
|
|
read _SYMLINK_INSTALL_DIR
|
|
if [ "X$_SYMLINK_INSTALL_DIR" = "X" ];then
|
|
_SYMLINK_INSTALL_DIR=$__SYMLINK_INSTALL_DIR
|
|
fi
|
|
|
|
while [ "$_SYMLINK_INSTALL_DIR" != "ja" \
|
|
-a "$_SYMLINK_INSTALL_DIR" != "Ja" \
|
|
-a "$_SYMLINK_INSTALL_DIR" != "nein" \
|
|
-a "$_SYMLINK_INSTALL_DIR" != "Nein" ]; do
|
|
echononl "Falsche Eingabe. (ja/nein): "
|
|
read _SYMLINK_INSTALL_DIR
|
|
done
|
|
if [ "$_SYMLINK_INSTALL_DIR" = "ja" -o "$_SYMLINK_INSTALL_DIR" = "Ja" ]; then
|
|
SYMLINK_INSTALL_DIR=true
|
|
else
|
|
SYMLINK_INSTALL_DIR=false
|
|
fi
|
|
|
|
echo ""
|
|
_SYMLINK_DATA_DIR=""
|
|
echononl "Sysmlink für das Datenverzeichnis? (ja/nein) [${__SYMLINK_DATA_DIR}]: "
|
|
read _SYMLINK_DATA_DIR
|
|
if [ "X$_SYMLINK_DATA_DIR" = "X" ];then
|
|
_SYMLINK_DATA_DIR=$__SYMLINK_DATA_DIR
|
|
fi
|
|
|
|
while [ "$_SYMLINK_DATA_DIR" != "ja" \
|
|
-a "$_SYMLINK_DATA_DIR" != "Ja" \
|
|
-a "$_SYMLINK_DATA_DIR" != "nein" \
|
|
-a "$_SYMLINK_DATA_DIR" != "Nein" ]; do
|
|
echononl "Falsche Eingabe. (ja/nein): "
|
|
read _SYMLINK_DATA_DIR
|
|
done
|
|
if [ "$_SYMLINK_DATA_DIR" = "ja" -o "$_SYMLINK_DATA_DIR" = "Ja" ]; then
|
|
SYMLINK_DATA_DIR=true
|
|
else
|
|
SYMLINK_DATA_DIR=false
|
|
fi
|
|
|
|
echo ""
|
|
|
|
echo ""
|
|
clear
|
|
echo -e "\033[21G\033[32mStarte Installation mit folgenden Parametern:\033[m"
|
|
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) --"
|
|
fi
|
|
echo ""
|
|
echo "Linuxdistribution.........: $DISTRIBUTION"
|
|
echo "MySQL Versionsnummer......: $MYSQL_VERSION"
|
|
echo "Sourcecodeverzeicnis......: $MYSQL_SRC_BASE_DIR"
|
|
echo "Installationsverzeichnis..: $MYSQL_INSTALL_DIR"
|
|
echo "Datenbankverzeichnis......: $MYSQL_DATA_DIR"
|
|
echo "Log Verzeichnis...........: $MYSQL_LOG_DIR"
|
|
echo "TCP Port..................: $MYSQL_PORT"
|
|
echo "Unix Socket...............: $MYSQL_UNIX_SOCKET"
|
|
echo "MySQL-User................: $MYSQL_USER"
|
|
echo "MySQL-Gruppe..............: $MYSQL_GROUP"
|
|
echo ""
|
|
echo "Symlink Initskript........: $SYMLINK_INITSCRIPT"
|
|
echo "Symlink Installationsverz.: $SYMLINK_INSTALL_DIR"
|
|
echo "Symlink Datenverzeichnis..: $SYMLINK_DATA_DIR"
|
|
echo ""
|
|
echo ""
|
|
echononl "einverstanden [ja/nein]: "
|
|
read OK
|
|
while [ "X$OK" != "Xja" -a "X$OK" != "XJa" -a "X$OK" != "Xnein" -a "X$OK" != "XNein" ]
|
|
do
|
|
echononl "falsche Angabe! [ja/nein]: "
|
|
read OK
|
|
done
|
|
[ $OK = "ja" -o $OK = "Ja" ] || fatal wiederhole Installation zur Eingabe anderer Parameter
|
|
|
|
|
|
|
|
## - Sorcecode Verzeichnis vorhanden?
|
|
## -
|
|
if [ ! -d ${MYSQL_SRC_BASE_DIR} ] ; then
|
|
fatal "Kann MySQL Sourcecode Verzeichnis \"${MYSQL_SRC_BASE_DIR}\" nicht finden."
|
|
fi
|
|
|
|
|
|
## - Sorcecode vorhanden?
|
|
## -
|
|
if [ ! -f ${MYSQL_SRC_BASE_DIR}/$distfile ] ; then
|
|
|
|
echo ""
|
|
|
|
echononl "Download $distfile ..."
|
|
#wget -O ${MYSQL_SRC_BASE_DIR}/$distfile http://sourceforge.net/projects/mysql.mirror/files/MySQL%20${MYSQL_VERSION}/mysql-${MYSQL_VERSION}.tar.gz/download 2> /dev/null
|
|
wget -O ${MYSQL_SRC_BASE_DIR}/$distfile https://dev.mysql.com/get/Downloads/MySQL-${MYSQL_MAJOR_VERSION}/$distfile 2>/dev/null
|
|
|
|
if [ "$?" = "0" ]; then
|
|
echo_ok
|
|
else
|
|
echo_failed
|
|
fatal "Downloading $distfile von http://sourceforge.net/projects/mysql.mirror/files Fehlgeschlagen."
|
|
fi
|
|
#fatal "Kann MySQL Sourcecode \"${MYSQL_SRC_BASE_DIR}/$distfile\" nicht finden.\n\nDownload von http://sourceforge.net/projects/mysql.mirror/files"
|
|
fi
|
|
|
|
echo ""
|
|
|
|
|
|
## - Erstelle Logverzeichnis
|
|
## -
|
|
if [ -d $logdir ]; then
|
|
echononl "Verschiebe exitierendes Logverzeichnis ..."
|
|
mv $logdir $logdir.`date +"%Y%m%d-%H%M"`
|
|
if [ "$?" = "0" ]; then
|
|
echo_ok
|
|
else
|
|
echo_failed
|
|
fatal Kann Logverzeichnis \"${logdir}\" nicht verschieben..
|
|
fi
|
|
fi
|
|
|
|
echononl "Erstelle Logverzeichnis \"${logdir}\".."
|
|
mkdir -p $logdir > /dev/null 2>&1
|
|
if [ "$?" = "0" ]; then
|
|
echo_ok
|
|
else
|
|
echo_failed
|
|
fatal Kann Logverzeichnis \"${logdir}\" nicht erstellen..
|
|
fi
|
|
touch ${logdir}/main.log
|
|
echo -e "## - Starte Installation mit folgenden Parametern:" >> ${logdir}/main.log
|
|
echo "## -" >> ${logdir}/main.log
|
|
if ! $UPDATE_MYSQL ; then
|
|
echo "## - Neusistallation" >> ${logdir}/main.log
|
|
else
|
|
echo "## - Update (Erstzen einer vorhandenen Installation)" >> ${logdir}/main.log
|
|
fi
|
|
echo "## -" >> ${logdir}/main.log
|
|
echo "## - Linuxdistribution.........: $DISTRIBUTION" >> ${logdir}/main.log
|
|
echo "## - MySQL Versionsnummer......: $MYSQL_VERSION" >> ${logdir}/main.log
|
|
echo "## - Sourcecodeverzeicnis......: $MYSQL_SRC_BASE_DIR" >> ${logdir}/main.log
|
|
echo "## - Installationsverzeichnis..: $MYSQL_INSTALL_DIR" >> ${logdir}/main.log
|
|
echo "## - Datenbankverzeichnis......: $MYSQL_DATA_DIR" >> ${logdir}/main.log
|
|
echo "## - Log Verzeichnis...........: $MYSQL_LOG_DIR" >> ${logdir}/main.log
|
|
echo "## - TCP Port..................: $MYSQL_PORT" >> ${logdir}/main.log
|
|
echo "## - Unix Socket...............: $MYSQL_UNIX_SOCKET" >> ${logdir}/main.log
|
|
echo "## - MySQL-User................: $MYSQL_USER" >> ${logdir}/main.log
|
|
echo "## - MySQL-Gruppe..............: $MYSQL_GROUP" >> ${logdir}/main.log
|
|
echo "## - " >> ${logdir}/main.log
|
|
echo "## - Symlink Initskript........: $SYMLINK_INITSCRIPT" >> ${logdir}/main.log
|
|
echo "## - Symlink Installationsverz.: $SYMLINK_INSTALL_DIR" >> ${logdir}/main.log
|
|
echo "## - Symlink Datenverzeichnis..: $SYMLINK_DATA_DIR" >> ${logdir}/main.log
|
|
echo "## - " >> ${logdir}/main.log
|
|
echo "" >> ${logdir}/main.log
|
|
echo "" >> ${logdir}/main.log
|
|
|
|
echo "UPDATE_MYSQL=$UPDATE_MYSQL" >> ${logdir}/main.log
|
|
echo "" >> ${logdir}/main.log
|
|
echo "DISTRIBUTION=$DISTRIBUTION" >> ${logdir}/main.log
|
|
echo "" >> ${logdir}/main.log
|
|
echo "MYSQL_VERSION=$MYSQL_VERSION" >> ${logdir}/main.log
|
|
echo "MYSQL_SRC_BASE_DIR=$MYSQL_SRC_BASE_DIR" >> ${logdir}/main.log
|
|
echo "MYSQL_INSTALL_DIR=$MYSQL_INSTALL_DIR" >> ${logdir}/main.log
|
|
echo "MYSQL_DATA_DIR=$MYSQL_DATA_DIR" >> ${logdir}/main.log
|
|
echo "MYSQL_LOG_DIR=$MYSQL_LOG_DIR" >> ${logdir}/main.log
|
|
echo "MYSQL_PORT=$MYSQL_PORT" >> ${logdir}/main.log
|
|
echo "MYSQL_UNIX_SOCKET=$MYSQL_UNIX_SOCKET" >> ${logdir}/main.log
|
|
echo "MYSQL_USER=$MYSQL_USER" >> ${logdir}/main.log
|
|
echo "MYSQL_GROUP=$MYSQL_GROUP" >> ${logdir}/main.log
|
|
echo "" >> ${logdir}/main.log
|
|
echo "SYMLINK_INITSCRIPT=$SYMLINK_INITSCRIPT" >> ${logdir}/main.log
|
|
echo "SYMLINK_INSTALL_DIR=$SYMLINK_INSTALL_DIR" >> ${logdir}/main.log
|
|
echo "SYMLINK_DATA_DIR=$SYMLINK_DATA_DIR" >> ${logdir}/main.log
|
|
echo "" >> ${logdir}/main.log
|
|
|
|
|
|
_MYSQL_INITSCRIPT=
|
|
if [ -f /etc/init.d/mysql.server ];then
|
|
_MYSQL_INITSCRIPT="mysql.server"
|
|
elif [ -f /etc/init.d/mysql ];then
|
|
_MYSQL_INITSCRIPT="mysql"
|
|
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"
|
|
echo "" >> ${logdir}/main.log
|
|
echo "update-rc.d -f $_MYSQL_INITSCRIPT remove" >> ${logdir}/main.log
|
|
update-rc.d -f $_MYSQL_INITSCRIPT remove >> ${logdir}/main.log 2>&1
|
|
if [ "$?" = "0" ]; then
|
|
echo_ok
|
|
else
|
|
echo_failed
|
|
fatal "Kann symbolische Links (Run Level Verzeichnisse) nicht entfernen."
|
|
fi
|
|
|
|
if [ -f "/etc/init.d/$_MYSQL_INITSCRIPT" ]; then
|
|
echononl "Entferne existierendes Initskript"
|
|
echo "" >> ${logdir}/main.log
|
|
echo "rm -f /etc/init.d/$_MYSQL_INITSCRIPT" >> ${logdir}/main.log
|
|
rm -f /etc/init.d/$_MYSQL_INITSCRIPT >> ${logdir}/main.log 2>&1
|
|
if [ "$?" = "0" ]; then
|
|
echo_ok
|
|
else
|
|
echo_failed
|
|
fatal "Kann Mexistierendes Initskript nicht entfernen."
|
|
fi
|
|
fi
|
|
fi
|
|
|
|
## - Uninstall debian mysql packages if installed
|
|
## -
|
|
if [ "$DISTRIBUTION" = "Debian" ]; then
|
|
echononl "Deinstalliere Debian MySQL Pakete.."
|
|
_INSTALLED_MYSQL_DEB=`dpkg -l | grep mysql | grep -e "^i" | awk '{print$2}'`
|
|
INSTALLED_MYSQL_DEB=
|
|
for deb in $_INSTALLED_MYSQL_DEB ; do
|
|
INSTALLED_MYSQL_DEB="$INSTALLED_MYSQL_DEB $deb"
|
|
done
|
|
if [ -n "$INSTALLED_MYSQL_DEB" ]; then
|
|
echo "" >> ${logdir}/main.log
|
|
echo "apt-get remove --purge -q -y $INSTALLED_MYSQL_DEB" >> ${logdir}/main.log
|
|
apt-get remove --purge -q -y $INSTALLED_MYSQL_DEB >> ${logdir}/main.log 2>&1
|
|
if [ "$?" = "0" ]; then
|
|
echo_ok
|
|
else
|
|
echo_failed
|
|
fatal Kann MySQL Packete nicht deinstalieren..
|
|
fi
|
|
else
|
|
echo_skipped
|
|
fi
|
|
fi
|
|
|
|
|
|
## - Install cmake if not exists
|
|
##
|
|
echononl "Installing \"cmake\".."
|
|
_cmake=`which cmake`
|
|
if [ "X$_cmake" = "X" ]; then
|
|
apt-get install -q -y cmake > ${logdir}/apt-install.log 2>&1
|
|
if [ "$?" = "0" ]; then
|
|
echo_ok
|
|
else
|
|
echo_failed
|
|
fatal Kann \"cmake\" nicht installieren..
|
|
fi
|
|
else
|
|
echo_skipped
|
|
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 Datenverzeichnis ..."
|
|
echo "" >> ${logdir}/main.log
|
|
echo "mv $MYSQL_DATA_DIR ${MYSQL_SRC_BASE_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 Sourceverzeichnis \"${MYSQL_SRC_BASE_DIR}/mysql-$MYSQL_VERSION\" nicht verschieben..
|
|
fi
|
|
fi
|
|
|
|
|
|
echononl "Erstelle Datenbankverzeichnis \"$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 Datenbankverzeichnis \"${MYSQL_DATA_DIR}\" nicht erstellen..
|
|
fi
|
|
|
|
echononl "Setze Besitzer \"${MYSQL_USER}:${MYSQL_GROUP}\" für Datenbankverzeichnis"
|
|
echo "" >> ${logdir}/main.log
|
|
echo "chown -R ${MYSQL_USER}:${MYSQL_GROUP} ${MYSQL_DATA_DIR}" >> ${logdir}/main.log
|
|
chown -R ${MYSQL_USER}:${MYSQL_GROUP} ${MYSQL_DATA_DIR} >> ${logdir}/main.log 2>&1
|
|
if [ "$?" = "0" ]; then
|
|
echo_ok
|
|
else
|
|
echo_failed
|
|
fatal Kann Besitzer für Datenbankverzeichnis \"${MYSQL_DATA_DIR}\" nicht ändern..
|
|
fi
|
|
|
|
echononl "Setze Verzeichnisrechte \"700\" für Datenbankverzeichnis"
|
|
echo "" >> ${logdir}/main.log
|
|
echo "chmod 700 ${MYSQL_DATA_DIR}" >> ${logdir}/main.log
|
|
chmod 700 ${MYSQL_DATA_DIR} >> ${logdir}/main.log 2>&1
|
|
if [ "$?" = "0" ]; then
|
|
echo_ok
|
|
else
|
|
echo_failed
|
|
fatal Kann Verzeichnisrechte für Datenbankverzeichnis \"${MYSQL_DATA_DIR}\" nicht ändern..
|
|
fi
|
|
|
|
|
|
echononl "Erstelle LOG Verzeichnis \"$MYSQL_LOG_DIR\".."
|
|
echo "" >> ${logdir}/main.log
|
|
echo "mkdir -p $MYSQL_LOG_DIR" >> ${logdir}/main.log
|
|
mkdir -p $MYSQL_LOG_DIR >> ${logdir}/main.log 2>&1
|
|
if [ "$?" = "0" ]; then
|
|
echo_ok
|
|
_mysql_log=${MYSQL_LOG_DIR}/mysql.log
|
|
_mysql_error_log=${MYSQL_LOG_DIR}/mysql.err
|
|
_mysql_slow_query_log=${MYSQL_LOG_DIR}/slow_query.log
|
|
else
|
|
echo_failed
|
|
fatal Kann LOG Verzeichnis \"${MYSQL_LOG_DIR}\" nicht erstellen..
|
|
fi
|
|
|
|
echononl "Setze Besitzer \"${MYSQL_USER}:${MYSQL_GROUP}\" für LOG Verzeichnis"
|
|
echo "" >> ${logdir}/main.log
|
|
echo "chown -R ${MYSQL_USER}:${MYSQL_GROUP} ${MYSQL_LOG_DIR}" >> ${logdir}/main.log
|
|
chown -R ${MYSQL_USER}:${MYSQL_GROUP} ${MYSQL_LOG_DIR} >> ${logdir}/main.log 2>&1
|
|
if [ "$?" = "0" ]; then
|
|
echo_ok
|
|
else
|
|
echo_failed
|
|
fatal Kann Besitzer für LOG Verzeichnis \"${MYSQL_LOG_DIR}\" nicht ändern..
|
|
fi
|
|
|
|
echononl "Setze Verzeichnisrechte \"2750\" für LOG Verzeichnis"
|
|
echo "" >> ${logdir}/main.log
|
|
echo "chmod 2750 ${MYSQL_LOG_DIR}" >> ${logdir}/main.log
|
|
chmod 2750 ${MYSQL_LOG_DIR} >> ${logdir}/main.log 2>&1
|
|
if [ "$?" = "0" ]; then
|
|
echo_ok
|
|
else
|
|
echo_failed
|
|
fatal Kann Verzeichnisrechte für LOG Verzeichnis \"${MYSQL_LOG_DIR}\" nicht ändern..
|
|
fi
|
|
|
|
|
|
#if [ -d "${MYSQL_SRC_BASE_DIR}/mysql-$MYSQL_VERSION" ];then
|
|
# echononl "Verschiebe exitierendes Sourceverzeichnis ..."
|
|
# echo "" >> ${logdir}/main.log
|
|
# echo "mv ${MYSQL_SRC_BASE_DIR}/mysql-$MYSQL_VERSION ${MYSQL_SRC_BASE_DIR}/mysql-$MYSQL_VERSION.`date +\"%Y%m%d-%H%M\"`" >> ${logdir}/main.log
|
|
# mv ${MYSQL_SRC_BASE_DIR}/mysql-$MYSQL_VERSION ${MYSQL_SRC_BASE_DIR}/mysql-$MYSQL_VERSION.`date +"%Y%m%d-%H%M"` \
|
|
# >> ${logdir}/main.log 2>&1
|
|
# if [ "$?" = "0" ]; then
|
|
# echo_ok
|
|
# else
|
|
# echo_failed
|
|
# fatal Kann Sourceverzeichnis \"${MYSQL_SRC_BASE_DIR}/mysql-$MYSQL_VERSION\" nicht verschieben..
|
|
# fi
|
|
#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
|
|
if [ "$?" = "0" ]; then
|
|
echo_ok
|
|
else
|
|
echo_failed
|
|
fatal Kann Sourceverzeichnis \"${MYSQL_SRC_DIR}\" nicht verschieben..
|
|
fi
|
|
fi
|
|
|
|
|
|
cd $MYSQL_SRC_BASE_DIR
|
|
echo "" >> ${logdir}/main.log
|
|
echo "cd $MYSQL_SRC_BASE_DIR" >> ${logdir}/main.log
|
|
|
|
echo
|
|
echononl "Entpacke $distfile ..."
|
|
echo "" >> ${logdir}/main.log
|
|
echo "gunzip < $distfile | tar -xf -" >> ${logdir}/main.log
|
|
|
|
gunzip < $distfile | tar -xf -
|
|
if [ "$?" = "0" ]; then
|
|
echo_ok
|
|
else
|
|
echo_failed
|
|
fatal Kann MySQL Sourcearchiv \"${distfile}\" nicht entpacken..
|
|
fi
|
|
|
|
cd ${MYSQL_SRC_DIR}
|
|
echo "" >> ${logdir}/main.log
|
|
echo "cd ${MYSQL_SRC_DIR}" >> ${logdir}/main.log
|
|
|
|
echononl "Konfiguriere MySQL (cmake).."
|
|
echo "" >> ${logdir}/main.log
|
|
echo "cmake -D CMAKE_INSTALL_PREFIX=$MYSQL_INSTALL_DIR -D MYSQL_DATADIR=$MYSQL_DATA_DIR ." >> ${logdir}/main.log
|
|
cmake -D CMAKE_INSTALL_PREFIX=$MYSQL_INSTALL_DIR -D MYSQL_DATADIR=$MYSQL_DATA_DIR . > ${logdir}/cmake-conf.log 2>&1
|
|
if [ "$?" = "0" ]; then
|
|
echo_ok
|
|
else
|
|
echo_failed
|
|
fatal Konfiguration fehlgeschlagen. Siehe ${logdir}/cmake-conf.log ..
|
|
fi
|
|
|
|
echononl "Kompiliere MySQL.."
|
|
echo "" >> ${logdir}/main.log
|
|
echo "make" >> ${logdir}/main.log
|
|
make > ${logdir}/make.log 2>&1
|
|
if [ "$?" = "0" ]; then
|
|
echo_ok
|
|
else
|
|
echo_failed
|
|
fatal Kompilieren der MySQL Sourcen ist fehlgeschlagen. Siehe ${logdir}/make.log ..
|
|
fi
|
|
|
|
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
|
|
if [ "$?" = "0" ]; then
|
|
echo_ok
|
|
else
|
|
echo_failed
|
|
fatal Kann Installationsverzeichnis \"${MYSQL_INSTALL_DIR}\" nicht verschieben..
|
|
fi
|
|
fi
|
|
|
|
echononl "Installiere MySQL.."
|
|
echo "" >> ${logdir}/main.log
|
|
echo "make install" >> ${logdir}/main.log
|
|
make install > ${logdir}/make_install.log 2>&1
|
|
if [ "$?" = "0" ]; then
|
|
echo_ok
|
|
else
|
|
echo_failed
|
|
fatal Installieren von MySQL ist fehlgeschlagen. Siehe ${logdir}/make_install.log ..
|
|
fi
|
|
|
|
echononl "Konfiguriere Manpages.."
|
|
_done=false
|
|
if [ -f /etc/manpath.config ];then
|
|
if ! grep /usr/local/mysql/man /etc/manpath.config > /dev/null 2<&1 ; then
|
|
echo >> /etc/manpath.config
|
|
echo "MANDATORY_MANPATH /usr/local/mysql/man /var/cache/man" >> /etc/manpath.config
|
|
echo "MANPATH_MAP /usr/local/mysql/bin /usr/local/mysql/man" >> /etc/manpath.config
|
|
echo "MANDB_MAP /usr/local/mysql/man /var/cache/man" >> /etc/manpath.config
|
|
|
|
_done=true
|
|
fi
|
|
elif [ -f /etc/man.conf ];then
|
|
if ! grep /opt/apache2/man /etc/man.conf > /dev/null 2<&1 ; then
|
|
echo >> /etc/man.conf
|
|
echo "MANPATH /opt/mysql/man /var/cache/man" >> /etc/man.conf
|
|
echo "MANPATH_MAP /opt/mysql/bin /opt/apache2/man" >> /etc/man.conf
|
|
|
|
_done=true
|
|
fi
|
|
fi
|
|
if $_done ; then
|
|
echo_ok
|
|
else
|
|
echo_skipped
|
|
fi
|
|
|
|
|
|
if $SYMLINK_INITSCRIPT ; then
|
|
|
|
if [ -h "/etc/init.d/mysql.server" ]; then
|
|
echononl "Entferne vorhandenen Symlink \"/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
|
|
fatal Kann Symlink /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
|
|
ln -s $MYSQL_INSTALL_DIR/support-files/mysql.server /etc/init.d/mysql.server >> ${logdir}/main.log 2>&1
|
|
if [ "$?" = "0" ]; then
|
|
echo_ok
|
|
else
|
|
echo_failed
|
|
fatal "Kann Symlink $MYSQL_INSTALL_DIR/support-files/mysql.server --> /etc/init.d/mysql.server nicht erstellen.."
|
|
fi
|
|
|
|
echononl "Setze ulimit im Startscript.."
|
|
echo "" >> ${logdir}/main.log
|
|
echo "sed -i \"1 s/\(.*\)/\1\n\nulimit -n \\\`ulimit -Hn\\\`\n/\" /etc/init.d/mysql.server" >> ${logdir}/main.log
|
|
sed -i "1 s/\(.*\)/\1\n\nulimit -n \`ulimit -Hn\`\n/" /etc/init.d/mysql.server >> ${logdir}/main.log 2>&1
|
|
if [ "$?" = "0" ]; then
|
|
echo_ok
|
|
else
|
|
echo_failed
|
|
fatal "Kann \"ulimit\" im Startscript nicht setzen /etc/init.d/mysql.server nicht setzen.."
|
|
fi
|
|
|
|
fi
|
|
|
|
## - Symlink Installadionsverzeichnis (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
|
|
fatal 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
|
|
fatal 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
|
|
fatal 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
|
|
fatal 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
|
|
fatal 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
|
|
fatal 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
|
|
_mysql_bin_dir="`dirname $MYSQL_INSTALL_DIR`/mysql/bin"
|
|
if ! grep -e "PATH=.*$_mysql_bin_dir" /etc/profile > /dev/null 2<&1 ; then
|
|
echo "" >> ${logdir}/main.log
|
|
echo "perl -i -n -p -e \"s#^([ ]*export[ ]*PATH.*$)#check_dir=\$_mysql_bin_dir\nif [ -d \\\"\\\\\\\$check_dir\\\" ];then\n PATH=\\\\\\\${check_dir}:\\\\\\\$PATH\nfi\n\n\1#\" /etc/profile" >> ${logdir}/main.log 2<&1
|
|
perl -i -n -p -e "s#^([ ]*export[ ]*PATH.*$)#check_dir=$_mysql_bin_dir\nif [ -d \"\\\$check_dir\" ];then\n PATH=\\\${check_dir}:\\\$PATH\nfi\n\n\1#" /etc/profile >> ${logdir}/main.log 2<&1
|
|
if [ "$?" = "0" ]; then
|
|
echo_ok
|
|
else
|
|
echo_failed
|
|
fi
|
|
|
|
if ! echo "$PATH" | grep $_mysql_bin_dir >> ${logdir}/main.log 2>&1 ; then
|
|
export PATH=${_mysql_bin_dir}:$PATH
|
|
fi
|
|
|
|
else
|
|
echo_skipped
|
|
fi
|
|
else
|
|
echo_skipped
|
|
fi
|
|
|
|
|
|
echo
|
|
echononl "Erstelle Konfigurationsdatei /etc/ld.so.conf.d/mysql.conf.."
|
|
cat << EOF >/etc/ld.so.conf.d/mysql.conf
|
|
`dirname $MYSQL_INSTALL_DIR`/mysql/lib
|
|
EOF
|
|
if [ "$?" = "0" ]; then
|
|
echo_ok
|
|
else
|
|
echo_failed
|
|
fatal Kann Datei /etc/ld.so.conf.d/mysql.conf für dynamischen Linker nicht erstellen ..
|
|
fi
|
|
|
|
echononl "Erstelle symbolische Links auf Libraries (ldconfig).."
|
|
echo "" >> ${logdir}/main.log
|
|
echo "ldconfig" >> ${logdir}/main.log
|
|
ldconfig >> ${logdir}/main.log 2>&1
|
|
if [ "$?" = "0" ]; then
|
|
echo_ok
|
|
else
|
|
echo_failed
|
|
fatal "Der Befehl \"ldconfig\" ist fehgeschlagen"
|
|
fi
|
|
|
|
echo
|
|
echononl "Richte MySQL Systemtabellen ein.."
|
|
cd $MYSQL_INSTALL_DIR
|
|
echo "" >> ${logdir}/main.log
|
|
echo "./scripts/mysql_install_db --no-defaults \ " >> ${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
|
|
|
|
./scripts/mysql_install_db --no-defaults \
|
|
--user=$MYSQL_USER \
|
|
--basedir=$MYSQL_INSTALL_DIR \
|
|
--datadir=$MYSQL_DATA_DIR \
|
|
--language=$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
|
|
|
|
echononl "Setze Besitzer/Gruppe für das Datenbankverzeichnis.."
|
|
echo "" >> ${logdir}/main.log
|
|
echo "chown -R ${MYSQL_USER}:$MYSQL_GROUP $MYSQL_DATA_DIR" >> ${logdir}/main.log
|
|
chown -R ${MYSQL_USER}:$MYSQL_GROUP $MYSQL_DATA_DIR >> ${logdir}/main.log 2>&1
|
|
if [ "$?" = "0" ]; then
|
|
echo_ok
|
|
else
|
|
echo_failed
|
|
fatal Konnte Besitzer/Gruppe für das Datenbankverzeichnis $MYSQL_DATA_DIR nicht setzen..
|
|
fi
|
|
|
|
|
|
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
|
|
if [ "$?" = "0" ]; then
|
|
echo_ok
|
|
else
|
|
echo_failed
|
|
fatal Konnte Konfigurationsdatei ${MYSQL_INSTALL_DIR}/my.cn nicht sichern..
|
|
fi
|
|
fi
|
|
|
|
echononl "Erstelle Konfigurationsdatei ${MYSQL_INSTALL_DIR}/my.cnf.."
|
|
|
|
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 "let MYSQL_THREAD_CONCURRENCY=$_number_cpus*2" >> ${logdir}/main.log
|
|
let MYSQL_THREAD_CONCURRENCY=$_number_cpus*2
|
|
|
|
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
|
|
# MySQL.
|
|
#
|
|
# You can copy this file to
|
|
# /etc/my.cnf to set global options,
|
|
# mysql-data-dir/my.cnf to set server-specific options (in this
|
|
# installation this directory is /var/lib/mysql) or
|
|
# ~/.my.cnf to set user-specific options.
|
|
#
|
|
# In this file, you can use all long options that a program supports.
|
|
# If you want to know which options a program supports, run the program
|
|
# with the "--help" option.
|
|
|
|
# The following options will be passed to all MySQL clients
|
|
[client]
|
|
port = $MYSQL_PORT
|
|
socket = $MYSQL_UNIX_SOCKET
|
|
|
|
# Here follows entries for some specific programs
|
|
# The following values assume you have at least 32M ram
|
|
|
|
# This was formally known as [safe_mysqld]. Both versions are currently parsed.
|
|
[mysqld_safe]
|
|
socket = $MYSQL_UNIX_SOCKET
|
|
nice = 0
|
|
|
|
open-files-limit = `ulimit -Hn`
|
|
innodb_open_files = `ulimit -Hn`
|
|
|
|
|
|
# The MySQL server
|
|
[mysqld]
|
|
port = $MYSQL_PORT
|
|
socket = $MYSQL_UNIX_SOCKET
|
|
|
|
## - skip_external_locking
|
|
## -
|
|
## - Affects only MyISAM table access.
|
|
## -
|
|
## - This is OFF if mysqld uses external locking (system locking),
|
|
## - ON if external locking is disabled.
|
|
## -
|
|
## - Default: ON
|
|
## -
|
|
skip-external-locking
|
|
|
|
|
|
# Don't listen on a TCP/IP port at all. This can be a security enhancement,
|
|
# if all processes that need to connect to mysqld run on the same host.
|
|
# All interaction with mysqld must be made via Unix sockets or named pipes.
|
|
# Note that using this option without enabling named pipes on Windows
|
|
# (via the "enable-named-pipe" option) will render mysqld useless!
|
|
#
|
|
#skip-networking
|
|
|
|
|
|
# Instead of skip-networking the default is now to listen only on
|
|
# localhost which is more compatible and is not less secure.
|
|
#
|
|
#bind-address = 127.0.0.1
|
|
bind-address = *
|
|
|
|
|
|
# Replication Master Server (default)
|
|
# binary logging is required for replication
|
|
#log-bin=mysql-bin
|
|
|
|
# required unique id between 1 and 2^32 - 1
|
|
# defaults to 1 if master-host is not set
|
|
# but will not function as a master if omitted
|
|
server-id = 1
|
|
|
|
# Replication Slave (comment out master section to use this)
|
|
#
|
|
# To configure this host as a replication slave, you can choose between
|
|
# two methods :
|
|
#
|
|
# 1) Use the CHANGE MASTER TO command (fully described in our manual) -
|
|
# the syntax is:
|
|
#
|
|
# CHANGE MASTER TO MASTER_HOST=<host>, MASTER_PORT=<port>,
|
|
# MASTER_USER=<user>, MASTER_PASSWORD=<password> ;
|
|
#
|
|
# where you replace <host>, <user>, <password> by quoted strings and
|
|
# <port> by the master's port number (3306 by default).
|
|
#
|
|
# Example:
|
|
#
|
|
# CHANGE MASTER TO MASTER_HOST='125.564.12.1', MASTER_PORT=3306,
|
|
# MASTER_USER='joe', MASTER_PASSWORD='secret';
|
|
#
|
|
# OR
|
|
#
|
|
# 2) Set the variables below. However, in case you choose this method, then
|
|
# start replication for the first time (even unsuccessfully, for example
|
|
# if you mistyped the password in master-password and the slave fails to
|
|
# connect), the slave will create a master.info file, and any later
|
|
# change in this file to the variables' values below will be ignored and
|
|
# overridden by the content of the master.info file, unless you shutdown
|
|
# the slave server, delete master.info and restart the slaver server.
|
|
# For that reason, you may want to leave the lines below untouched
|
|
# (commented) and instead use CHANGE MASTER TO (see above)
|
|
#
|
|
# required unique id between 2 and 2^32 - 1
|
|
# (and different from the master)
|
|
# defaults to 2 if master-host is set
|
|
# but will not function as a slave if omitted
|
|
#server-id = 2
|
|
#
|
|
# The replication master for this slave - required
|
|
#master-host = <hostname>
|
|
#
|
|
# The username the slave will use for authentication when connecting
|
|
# to the master - required
|
|
#master-user = <username>
|
|
#
|
|
# The password the slave will authenticate with when connecting to
|
|
# the master - required
|
|
#master-password = <password>
|
|
#
|
|
# The port the master is listening on.
|
|
# optional - defaults to 3306
|
|
#master-port = <port>
|
|
#
|
|
# binary logging - not required for slaves, but recommended
|
|
#log-bin=mysql-bin
|
|
#
|
|
# binary logging format - mixed recommended
|
|
#binlog_format=mixed
|
|
|
|
# Point the following paths to different dedicated disks
|
|
#tmpdir = /tmp/
|
|
#log-update = /path-to-dedicated-directory/hostname
|
|
|
|
|
|
## - max_connections
|
|
## -
|
|
## - Die zulässige Anzahl nebenläufiger Clientverbindungen. Wenn dieser Wert erhöht
|
|
## - wird, erhöht sich auch die Anzahl der Dateideskriptoren, die mysqld benötigt.
|
|
## -
|
|
## - Vorgabewert ist 100
|
|
## -
|
|
#max_connections = 300
|
|
|
|
|
|
## - explicit_defaults_for_timestamp
|
|
## -
|
|
## - This variable was added in MySQL 5.6.6
|
|
## -
|
|
## - In MySQL, the TIMESTAMP data type differs in nonstandard ways
|
|
## - from other data types. See MySQL Dokumentation.
|
|
## -
|
|
## - [Warning] TIMESTAMP with implicit DEFAULT value is deprecated.
|
|
## - Please use --explicit_defaults_for_timestamp server option (see
|
|
## - documentation for more details).
|
|
## -
|
|
## - As indicated by the warning, to turn off the nonstandard behaviors,
|
|
## - enable the new .
|
|
## -
|
|
#explicit_defaults_for_timestamp = TRUE
|
|
|
|
|
|
## - MySQL Fehlermeldungen
|
|
## -
|
|
## - !! Notice
|
|
## - erst ab für mysql 5.5.x
|
|
## -
|
|
## - lc-messages=de_DE
|
|
## - lc-messages-dir=`dirname $MYSQL_INSTALL_DIR`/mysql/share
|
|
## -
|
|
## - bis 5.1.x
|
|
## -
|
|
## - language=`dirname $MYSQL_INSTALL_DIR`/mysql/share/german
|
|
## -
|
|
|
|
|
|
## - low-priority-updates
|
|
## -
|
|
## - Give table-modifying operations (INSERT, REPLACE, DELETE,
|
|
## - UPDATE) lower priority than selects.
|
|
## -
|
|
## -
|
|
low-priority-updates = 1
|
|
|
|
|
|
## - concurrent_insert
|
|
## -
|
|
## - If activated (1 or AUTO, the default), MySQL permits INSERT
|
|
## - and SELECT statements to run concurrently for MyISAM tables
|
|
## - that have no free blocks in the middle of the data file.
|
|
## -
|
|
## - If set to 2 or ALWAYS, MySQL enables concurrent inserts for
|
|
## - all MyISAM tables, even those that have holes. For a table with
|
|
## - a hole, new rows are inserted at the end of the table if it is
|
|
## - in use by another thread. Otherwise, MySQL acquires a normal
|
|
## - write lock and inserts the row into the hole.
|
|
## -
|
|
concurrent_insert = 2
|
|
|
|
|
|
## - open-files-limit
|
|
## -
|
|
## - put the following lines into /etc/security/limits.conf
|
|
## -
|
|
## - @staff hard nofile 65536
|
|
## - root hard nofile 65536
|
|
## -
|
|
## - see also http://linux-vserver.org/Ulimit_Nofiles
|
|
## -
|
|
open-files-limit = `ulimit -Hn`
|
|
innodb_open_files = `ulimit -Hn`
|
|
|
|
|
|
## -------------------------
|
|
## InnoDB specific variables
|
|
|
|
## - innodb_file_per_table
|
|
## -
|
|
## - When innodb_file_per_table is enabled (the default in 5.6.6 and higher),
|
|
## - InnoDB stores the data and indexes for each newly created table in a
|
|
## - separate .ibd file, rather than in the system tablespace.
|
|
## -
|
|
innodb_file_per_table
|
|
|
|
## - innodb_data_home_dir
|
|
## -
|
|
## - Default: MySQL data directory
|
|
## -
|
|
#innodb_data_home_dir = /data/mysql
|
|
|
|
#innodb_data_file_path = ibdata1:2000M;ibdata2:10M:autoextend
|
|
|
|
## - innodb_log_group_home_dir
|
|
## -
|
|
## - The directory path to the InnoDB redo log files, whose number
|
|
## - is specified by innodb_log_files_in_group.
|
|
## -
|
|
## - If you do not specify any InnoDB log variables, the default is
|
|
## - to create two files named ib_logfile0 and ib_logfile1 in the MySQL
|
|
## - data directory. Their size is given by the size of the
|
|
## - innodb_log_file_size system variable.
|
|
## -
|
|
#innodb_log_group_home_dir = /var/lib/mysql/
|
|
|
|
## - innodb_buffer_pool_size
|
|
## -
|
|
## - The size in bytes of the buffer pool, the memory area where InnoDB
|
|
## - caches table and index data.
|
|
## -
|
|
## - You can set .._buffer_pool_size up to 50 - 80 %
|
|
## - of RAM but beware of setting memory usage too high
|
|
## -
|
|
## - Note:
|
|
## - When the size of the buffer pool is greater than 1GB, setting
|
|
## - innodb_buffer_pool_instances to a value greater than 1 can improve
|
|
## - the scalability on a busy server.
|
|
## -
|
|
## - default: 134217728 (128M)
|
|
## -
|
|
#innodb_buffer_pool_size = 384M
|
|
innodb_buffer_pool_size = 1024M
|
|
#innodb_buffer_pool_size = 2G:w
|
|
|
|
|
|
|
|
## - innodb_additional_mem_pool_size
|
|
## -
|
|
## - The size in bytes of a memory pool InnoDB uses to store data dictionary
|
|
## - information and other internal data structures.
|
|
## -
|
|
## - Default: 8388608 (8M)
|
|
## -
|
|
#innodb_additional_mem_pool_size = 20M
|
|
#innodb_additional_mem_pool_size = 40M
|
|
innodb_additional_mem_pool_size = 50M
|
|
|
|
|
|
## - innodb_buffer_pool_instances
|
|
## -
|
|
## - The number of regions that the InnoDB buffer pool is divided into.
|
|
## -
|
|
## - Note:
|
|
## - For systems with buffer pools in the multi-gigabyte range, dividing
|
|
## - the buffer pool into separate instances can improve concurrency, by
|
|
## - reducing contention as different threads read and write to cached pages.
|
|
## -
|
|
## - Default: 1
|
|
## -
|
|
#innodb_buffer_pool_instances = 1
|
|
|
|
|
|
## - innodb_log_file_size
|
|
## -
|
|
## - The size in bytes of each log file in a log group.
|
|
## -
|
|
## - Default: 5242880 (5M)
|
|
## -
|
|
## (Set .._log_file_size to 25 % of buffer pool size)
|
|
## -
|
|
#innodb_log_file_size = 100M
|
|
#innodb_log_file_size = 256M
|
|
innodb_log_file_size = 750M
|
|
|
|
## - innodb_log_buffer_size
|
|
## -
|
|
## - The size in bytes of the buffer that InnoDB uses to write to the
|
|
## - log files on disk.
|
|
## -
|
|
## - Default: 8388608 (8M)
|
|
## -
|
|
#innodb_log_buffer_size = 8M
|
|
#innodb_log_buffer_size = 32M
|
|
innodb_log_buffer_size = 64M
|
|
|
|
## - innodb_flush_log_at_trx_commit
|
|
## -
|
|
## - Controls the balance between strict ACID compliance for commit
|
|
## - operations, and higher performance that is possible when
|
|
## - commit-related I/O operations are rearranged and done in batches.
|
|
## - You can achieve better performance by changing the default value,
|
|
## - but then you can lose up to one second worth of transactions in a crash.
|
|
## -
|
|
## - In case of extrem slowly restores set
|
|
## -
|
|
## - innodb_flush_log_at_trx_commit = 2
|
|
## - innodb_log_file_size = 256M
|
|
## -
|
|
## - Also try to add (befor DROP/CREATE/INSET Statements) to the dumpfile:
|
|
## -
|
|
## - ...
|
|
## - SET FOREIGN_KEY_CHECKS=0;
|
|
## - SET unique_checks=0;
|
|
## - SET AUTOCOMMIT=0;
|
|
## -
|
|
## - DROP TABLE IF EXISTS..
|
|
## - ...
|
|
## -
|
|
innodb_flush_log_at_trx_commit = 1
|
|
#innodb_flush_log_at_trx_commit = 2
|
|
|
|
## - innodb_lock_wait_timeout
|
|
## -
|
|
## - The length of time in seconds an InnoDB transaction waits for a row
|
|
## - lock before giving up.
|
|
## -
|
|
## - Default: 50
|
|
## -
|
|
#innodb_lock_wait_timeout = 50
|
|
|
|
## InnoDB specific variables
|
|
## -------------------------
|
|
|
|
|
|
## - sort_buffer_size
|
|
## -
|
|
## - Each session that needs to do a sort allocates a buffer of this size.
|
|
## - sort_buffer_size is not specific to any storage engine and applies
|
|
## - in a general manner for optimization.
|
|
## -
|
|
## - Default: 2097152 (2M)
|
|
## -
|
|
sort_buffer_size = 2M
|
|
sort_buffer_size = 256M
|
|
|
|
|
|
## - key_buffer_size
|
|
## -
|
|
## - key_buffer_size" is a MyISAM parameter !
|
|
## -
|
|
## - Index blocks for MyISAM tables are buffered and are shared by all threads.
|
|
## - key_buffer_size is the size of the buffer used for index blocks. The key
|
|
## - buffer is also known as the key cache.
|
|
## -
|
|
## - Default: 8388608 (8M)
|
|
## -
|
|
key_buffer_size = 384M
|
|
|
|
|
|
## - read_buffer_size
|
|
## -
|
|
## - Each thread that does a sequential scan for a MyISAM table allocates
|
|
## - a buffer of this size (in bytes) for each table it scans. If you do
|
|
## - many sequential scans, you might want to increase this value.
|
|
## -
|
|
## - Default: 131072 (128K)
|
|
## -
|
|
#read_buffer_size = 2M
|
|
read_buffer_size = 4M
|
|
|
|
## - read_rnd_buffer_size
|
|
## -
|
|
## - This variable is used for reads from MyISAM tables, and, for any
|
|
## - storage engine, for Multi-Range Read optimization.
|
|
## -
|
|
## - Default: 262144 (256K)
|
|
## -
|
|
read_rnd_buffer_size = 8M
|
|
|
|
|
|
## - myisam_sort_buffer_size
|
|
## -
|
|
## - The size of the buffer that is allocated when sorting MyISAM indexes
|
|
## - during a REPAIR TABLE or when creating indexes with CREATE INDEX or
|
|
## - ALTER TABLE.
|
|
## -
|
|
## - Default: 8388608 (8M)
|
|
## -
|
|
myisam_sort_buffer_size = 64M
|
|
|
|
|
|
## - max_allowed_packet
|
|
## -
|
|
## - The maximum size of one packet or any generated/intermediate string, or
|
|
## - any parameter sent by the mysql_stmt_send_long_data() C API function.
|
|
##
|
|
## - Default: 4MB (MySQL 5.6.6), 1MB before that.
|
|
## -
|
|
#max_allowed_packet = 4M
|
|
#max_allowed_packet = 32M
|
|
max_allowed_packet = 64M
|
|
|
|
|
|
## - table_open_cache
|
|
## -
|
|
## - The number of open tables for all threads. Increasing this value
|
|
## - increases the number of file descriptors that mysqld requires.
|
|
## -
|
|
## - You can check whether you need to increase the table cache by checking
|
|
## - the Opened_tables status variable. If the value of Opened_tables is large
|
|
## - and you do not use FLUSH TABLES often (which just forces all tables to be
|
|
## - closed and reopened), then you should increase the value of the
|
|
## - table_open_cache variable.
|
|
## -
|
|
#table_open_cache = 512
|
|
table_open_cache = 1024
|
|
|
|
## - table_definition_cache
|
|
## -
|
|
## - The number of table definitions (from .frm files) that can be stored
|
|
## - in the definition cache.
|
|
## -
|
|
## - Default: (400 + (table_open_cache / 2) since 5.6.8, 400 before
|
|
## -
|
|
#table_definition_cache = 1680
|
|
|
|
## - max_connect_errors
|
|
## -
|
|
## - Default: 100 (5.6.6), 10 (before)
|
|
## -
|
|
max_connect_errors = 999999
|
|
|
|
## - thread_concurrency
|
|
## -
|
|
## - NOTE:
|
|
## - This variable is specific to Solaris 8 and earlier systems.
|
|
## -
|
|
## - This variable is deprecated as of MySQL 5.6.1 and is removed in MySQL 5.7.
|
|
## - You should remove this from MySQL configuration files whenever you see it
|
|
## - unless they are for Solaris 8 or earlier
|
|
## -
|
|
## - (Try number of CPU's*2 for thread_concurrency)
|
|
## -
|
|
#thread_concurrency = 16
|
|
thread_concurrency = 16
|
|
|
|
## - thread_cache_size
|
|
## -
|
|
## - How many threads the server should cache for reuse. When a client
|
|
## - disconnects, the client's threads are put in the cache if there are
|
|
## - fewer than thread_cache_size threads there.
|
|
## -
|
|
## - Default: 8 + (max_connections / 100) (5.6.8) , 0 (before)
|
|
## -
|
|
#thread_cache_size = 8
|
|
thread_cache_size = 32
|
|
|
|
## - thread_stack
|
|
## -
|
|
## - The stack size for each thread. Many of the limits detected by
|
|
## - the crash-me test are dependent on this value.
|
|
## -
|
|
## - The default of 192KB (256KB for 64-bit systems) is large enough
|
|
## - for normal operation. If the thread stack size is too small, it
|
|
## - limits the complexity of the SQL statements that the server can handle,
|
|
## - the recursion depth of stored procedures, and other memory-consuming
|
|
## - actions.
|
|
## - Default: 262144 (256K)
|
|
## -
|
|
thread_stack = 262144
|
|
|
|
|
|
## - Unbenutze Datenbank Engines deaktivieren
|
|
## -
|
|
|
|
## - skip-innodb
|
|
## -
|
|
## - Deaktiviert die Unterstützung für InnoDB
|
|
## -
|
|
## - Sincs version 5.5, you have to set default-storage-engine
|
|
## - to MyISAM, if using skip-innodb
|
|
## -
|
|
#default-storage-engine=MyISAM
|
|
#skip-innodb
|
|
|
|
|
|
## - log-error
|
|
## -
|
|
## - Log errors and startup messages to this file. If you omit the file
|
|
## - name, MySQL uses host_name.err. If the file name has no extension,
|
|
## - the server adds an extension of .err.
|
|
## -
|
|
log-error = $_mysql_error_log
|
|
|
|
|
|
## - Query Log
|
|
## -
|
|
#general-log = on
|
|
#general_log_file = $_mysql_log
|
|
|
|
|
|
## - ft_min_word_len
|
|
## -
|
|
## - Die minimale Länge des Wortes, das in einem FULLTEXT-Index enthalten sein darf.
|
|
## -
|
|
## - Notice!
|
|
## - if you set
|
|
## - [mysqld]
|
|
## - ft_min_word_len=3
|
|
## -
|
|
## - you should also set
|
|
## - [myisamchk]
|
|
## - ft_min_word_len=3
|
|
## -
|
|
## -
|
|
## - Vorgabewert ist 4
|
|
#ft_min_word_len = 3
|
|
ft_min_word_len = 2
|
|
|
|
## - ft_stopword_file
|
|
## -
|
|
## - Datei, aus der die Liste der Stoppwörter für die Volltextsuche ausgelesen wird.
|
|
## - Es werden alle Wörter aus der Datei verwendet; Kommentare hingegen werden nicht
|
|
## - berücksichtigt. Standardmäßig wird eine eingebaute Liste mit Stoppwörtern (wie
|
|
## - in der Datei myisam/ft_static.c definiert) verwendet. Wird diesee Variable auf den
|
|
## - Leer-String gesetzt (''), wird die Ausfilterung von Stoppwörtern deaktiviert.
|
|
## -
|
|
## - Hinweis: Wird diese Variable geändern oder den Inhalt der Stoppwortdatei selbst,
|
|
## - müssen die FULLTEXT-Indizes neu erstellt werden (REPAIR TABLE tbl_name QUICK. ).
|
|
## -
|
|
#ft_stopword_file = /usr/local/mysql/stopwords_utf8_iso8859-15.txt
|
|
|
|
|
|
|
|
## -------------
|
|
## - query cache
|
|
|
|
|
|
## - query_cache_type
|
|
## -
|
|
## - 0 : verhindert das Speichern von Abfragen im und
|
|
## - das Abrufen aus dem Cache
|
|
## - 1 : gestattet das Speichern von Abfragen im Cache.
|
|
## - Ausgenommen sind Anweisungen, die mit
|
|
## - SELECT SQL_NO_CACHE beginnen.
|
|
## - 2 : speichert nur diejenigen Anweisungen im Cache,
|
|
## - die mit SELECT SQL_CACHE beginnen.
|
|
query_cache_type = 1
|
|
|
|
|
|
## - query_cache_limit
|
|
## -
|
|
## - Gibt die maximale Größe einzelner Abfrageergebnisse an, die im
|
|
## - Cache gespeichert werden können.
|
|
## -
|
|
## - Vorgeabewert ist 1Mbyte
|
|
## -
|
|
#query_cache_limit = 4M
|
|
query_cache_limit = 16M
|
|
|
|
|
|
## - query_cache_min_res_unit
|
|
## -
|
|
## - Die im Abfrage-Cache abgelegten Ergebnisse, werden nicht am Stück
|
|
## - verwaltet. Der Abfrage-Cache reserviert Blöcke zur Speicherung dieser
|
|
## - Daten nach Bedarf, d. h. wenn ein Block voll ist, wird der nächste
|
|
## - zugewiesen. Da der Speicherreservierungsvorgang (in zeitlicher Hinsicht)
|
|
## - aufwändig ist, reserviert der Abfrage-Cache die Blöcke mit einer
|
|
## - Mindestgröße, die durch die Systemvariable query_cache_min_res_unit
|
|
## - festgelegt wird. Wird eine Abfrage ausgeführt, dann wird der letzte
|
|
## - Ergebnisblock auf die tatsächliche Datengröße zugeschnitten, sodass
|
|
## - unbenutzter Speicher freigegeben wird.
|
|
## -
|
|
## - Siehe auch http://dev.mysql.com/doc/refman/5.1/de/query-cache-configuration.html
|
|
## -
|
|
## - Vorgabewert ist 4Kbyte
|
|
## -
|
|
query_cache_min_res_unit = 8K
|
|
|
|
|
|
## - query_cache_size
|
|
## -
|
|
## - Die Größe des Abfrage-Caches.
|
|
## -
|
|
## - Wird query_cache_size auf einen Wert größer Null gesetzt, so ist zu beachten,
|
|
## - dass der Abfrage-Cache eine Mindestgröße von ca. 40 Kbyte benötigt, um seine
|
|
## - Strukturen zuzuweisen. (Der exakte Wert hängt von der Systemarchitektur ab.)
|
|
## - Wird der Wert zu niedrig angesetzt, wird eine Warnung ausgegeben.
|
|
## -
|
|
## - Vorgabewert ist 0, d. h. der Abfrage-Cache ist vorgabeseitig deaktiviert.
|
|
## -
|
|
#query_cache_size = 32M
|
|
query_cache_size = 128M
|
|
|
|
## - query cache
|
|
## -------------
|
|
|
|
|
|
## --------------
|
|
## - slow queries
|
|
|
|
## - slow_query_log
|
|
## -
|
|
## - Gibt an, ob das Logging für langsame Abfragen eingeschaltet (1 oder ON)
|
|
## - bzw ausgeschaltet (0 oder OFF) ist.
|
|
## -
|
|
## - Vorgabewert ist 0 oder OFF
|
|
## -
|
|
slow_query_log = 1
|
|
|
|
|
|
## - long_query_time
|
|
## -
|
|
## - Wenn eine Abfrage länger dauert als durch diese Variable (in Sekunden) angegeben,
|
|
## - erhöht der Server die Statusvariable Slow_queries entsprechend. Wird die Option
|
|
## - --log-slow-queries verwendet, wird die Abfrage in der Logdatei für langsame Abfragen
|
|
## - protokolliert. Dieser Wert wird als Echtzeit (nicht als Prozessorzeit) gemessen, d. h.
|
|
## - eine Abfrage, die bei einem System mit geringer Belastung den Schwellwert
|
|
## - unterschreitet, kann bei einem stark belasteten System bereits darüber liegen.
|
|
## - Der Mindestwert ist 1.
|
|
## -
|
|
## - Vorgabewert ist 10
|
|
## -
|
|
long_query_time = 1
|
|
|
|
|
|
## - slow_query_log_file
|
|
## -
|
|
## - Name der Logdatei, in die langsame Abfragen gespeichert werden.
|
|
## -
|
|
## - Vorgabewert ist <host-name>-slow.log
|
|
## -
|
|
slow_query_log_file = $_mysql_slow_query_log
|
|
|
|
|
|
## - log-queries-not-using-indexes
|
|
## -
|
|
## - Gibt an, ob Abfragen, die keine Indizes benutzen in der Logdatei
|
|
## - für langsame Abfragen mitgespeichert werden sollen.
|
|
## -
|
|
## - Vorgabewert ist 0
|
|
## -
|
|
log_queries_not_using_indexes = 1
|
|
#log_queries_not_using_indexes = 0
|
|
|
|
## - slow queries
|
|
## --------------
|
|
|
|
## - join_buffer_size
|
|
## -
|
|
## - Die Größe des Puffers, der für Joins benutzt wird, die keine Indizes verwenden
|
|
## - und deswegen vollständige Tabellenscans durchführen. Normalerweise besteht die
|
|
## - beste Möglichkeit der Realisierung schneller Joins darin, Indizes hinzuzufügen.
|
|
## - Erhöhen Sie den Wert von join_buffer_size, um einen schnelleren vollständigen
|
|
## - Join zu implementieren, wenn das Hinzufügen von Indizes nicht möglich ist. Für
|
|
## - jeden vollständigen Join zwischen zwei Tabellen wird ein Join-Puffer hinzugefügt.
|
|
## - Für einen komplexen Join zwischen mehreren Tabellen, für den Indizes nicht verwendet
|
|
## - werden, sind unter Umständen mehrere Join-Puffer erforderlich.
|
|
## -
|
|
## - Wird die Option --log-slow-queries (ON) verwendet, werden Abfragen, die keine
|
|
## - Indizes verwenden, in das Log für langsame Abfragen geschrieben.
|
|
## -
|
|
## - Vorgabewert ist 128K
|
|
## -
|
|
#join_buffer_size = 384K
|
|
join_buffer_size = 512K
|
|
|
|
|
|
|
|
## - max_heap_table_size
|
|
## -
|
|
## - Diese Variable bestimmt die maximale Größe, auf die MEMORY-Tabellen anwachsen dürfen.
|
|
## - Der Wert der Variable wird zur Berechnung von MAX_ROWS-Werte für MEMORY-Tabellen
|
|
## - verwendet. Die Einstellung der Variable hat keine Auswirkungen auf bereits vorhandene
|
|
## - MEMORY-Tabellen, sofern diese nicht mit einer Anweisung wie CREATE TABLE neu erstellt
|
|
## - oder mit ALTER TABLE oder TRUNCATE TABLE modifiziert werden.
|
|
## -
|
|
## - Vorgabewert ist 16Mbyte
|
|
## -
|
|
#max_heap_table_size = 32M
|
|
max_heap_table_size = 96M
|
|
|
|
|
|
## - tmp_table_size
|
|
## -
|
|
## - Überschreitet eine temporäre Tabelle im Arbeitsspeicher diese Größe, wandelt MySQL
|
|
## - sie automatisch in eine MyISAM-Tabelle auf der Festplatte um.
|
|
## -
|
|
## - Werden viele erweiterte GROUP-BY-Anfragen ausgeführt (und ist genügend Speicher
|
|
## - vorhanden), so sollte diese Variable erhöht werden.
|
|
##
|
|
## - Default: 16777216 (16M)
|
|
## -
|
|
## - Note:
|
|
## - Effective in-memory tmp_table_size is limited to max_heap_table_size.
|
|
## -
|
|
#tmp_table_size = 96M
|
|
tmp_table_size = 128M
|
|
|
|
|
|
## - angepasste Einstellungen
|
|
## ------------------------------------------
|
|
|
|
|
|
[mysqldump]
|
|
quick
|
|
max_allowed_packet = 32M
|
|
|
|
[mysql]
|
|
no-auto-rehash
|
|
# Remove the next comment character if you are not familiar with SQL
|
|
#safe-updates
|
|
|
|
[myisamchk]
|
|
key_buffer_size = 256M
|
|
sort_buffer_size = 256M
|
|
read_buffer = 2M
|
|
write_buffer = 2M
|
|
|
|
|
|
## ------------------------------------------
|
|
## - angepasste Einstellungen
|
|
|
|
## - ft_min_word_len
|
|
## -
|
|
## - Die minimale Länge des Wortes, das in einem FULLTEXT-Index enthalten sein darf.
|
|
## -
|
|
## - Notice!
|
|
## - if you set
|
|
## - [mysqld]
|
|
## - ft_min_word_len=3
|
|
## -
|
|
## - you should also set
|
|
## - [myisamchk]
|
|
## - ft_min_word_len=3
|
|
## -
|
|
## -
|
|
## - Vorgabewert ist 4
|
|
#ft_min_word_len = 3
|
|
ft_min_word_len = 2
|
|
|
|
## - angepasste Einstellungen
|
|
## ------------------------------------------
|
|
|
|
|
|
[mysqlhotcopy]
|
|
interactive-timeout
|
|
|
|
EOF
|
|
if [ "$?" = "0" ]; then
|
|
echo_ok
|
|
else
|
|
echo_failed
|
|
fatal 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"
|
|
fi
|
|
else
|
|
echo_skipped
|
|
warn "Konnte ${MYSQL_SRC_BASE_DIR}/stopwords_utf8_iso8859-15.txt finden."
|
|
fi
|
|
|
|
|
|
#echononl "Kopiere Startscript nach /etc/init.d/mysql.server.."
|
|
#echo "" >> ${logdir}/main.log
|
|
#echo "cp -a ${MYSQL_INSTALL_DIR}/support-files/mysql.server /etc/init.d/mysql.server" >> ${logdir}/main.log
|
|
#cp -a ${MYSQL_INSTALL_DIR}/support-files/mysql.server /etc/init.d/mysql.server >> ${logdir}/main.log 2>&1
|
|
#if [ "$?" = "0" ]; then
|
|
# echo_ok
|
|
#else
|
|
# echo_failed
|
|
# fatal Konnte Startscript nicht nach /etc/init.d/mysql.server kopieren..
|
|
#fi
|
|
|
|
#echononl "Ersetze im Startscript: \"mysql-${_MYSQL_VERSION}\" durch \"mysql\".."
|
|
#echo "perl -i -n -p -e \"s/mysql-${_MYSQL_VERSION}/mysql/g\" /etc/init.d/mysql.server" >> ${logdir}/main.log
|
|
#perl -i -n -p -e "s/mysql-${_MYSQL_VERSION}/mysql/g" /etc/init.d/mysql.server >> ${logdir}/main.log 2>&1
|
|
#if [ "$?" = "0" ]; then
|
|
# echo_ok
|
|
#else
|
|
# echo_failed
|
|
#fi
|
|
#
|
|
#echo "" >> ${logdir}/main.log
|
|
#echo "chown root:root /etc/init.d/mysql.server" >> ${logdir}/main.log
|
|
#chown root:root /etc/init.d/mysql.server >> ${logdir}/main.log 2>&1
|
|
#
|
|
#echo "" >> ${logdir}/main.log
|
|
#echo "chmod 755 /etc/init.d/mysql.server" >> ${logdir}/main.log
|
|
#chmod 755 /etc/init.d/mysql.server >> ${logdir}/main.log 2>&1
|
|
|
|
|
|
if ! $UPDATE_MYSQL ; then
|
|
|
|
echononl "Starte MySQL Server beim Booten"
|
|
echo "" >> ${logdir}/main.log
|
|
echo "update-rc.d mysql.server defaults" >> ${logdir}/main.log
|
|
update-rc.d mysql.server defaults >> ${logdir}/main.log 2>&1
|
|
if [ "$?" = "0" ]; then
|
|
echo_ok
|
|
else
|
|
echo_failed
|
|
fatal "Konnte MySQL Init Script Links (autom. boot) nicht entfernen.."
|
|
fi
|
|
|
|
echononl "Starte MySQL Datenbankserver.."
|
|
echo "" >> ${logdir}/main.log
|
|
echo "/etc/init.d/mysql.server start" >> ${logdir}/main.log
|
|
/etc/init.d/mysql.server start >> ${logdir}/main.log 2>&1
|
|
if [ "$?" = "0" ]; then
|
|
echo_ok
|
|
else
|
|
echo_failed
|
|
fatal Konnte MySQL Datenbankserver nicht starten..
|
|
fi
|
|
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
|
|
|
|
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 Password = password('$MYSQL_ROOT_PW')\"" >> ${logdir}/main.log
|
|
${MYSQL_INSTALL_DIR}/bin/mysql -uroot mysql -N -s -e "UPDATE user set Password = password('$MYSQL_ROOT_PW')" \
|
|
>> ${logdir}/main.log 2>&1
|
|
if [ "$?" = "0" ]; then
|
|
echo_ok
|
|
else
|
|
echo_failed
|
|
fatal Konnte MySQL root Zugang fü den MySQL Server nicht setzen..
|
|
fi
|
|
|
|
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
|
|
fatal Das Laden/Erneuern der Berechtigungen für die MySQL Datenbank ist fehlgeschlagen..
|
|
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
|
|
fatal Konnte Passwort für maintance \(MySQL\) User nicht erstellen..
|
|
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
|
|
fatal 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
|
|
fatal 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
|
|
[client]
|
|
host = localhost
|
|
user = $_maint_user
|
|
password = $_maint_passwd
|
|
socket = $MYSQL_UNIX_SOCKET
|
|
[mysql_upgrade]
|
|
host = localhost
|
|
user = $_maint_user
|
|
password = $_maint_passwd
|
|
socket = $MYSQL_UNIX_SOCKET
|
|
basedir = /usr
|
|
EOF
|
|
if [ "$?" = "0" ]; then
|
|
echo_ok
|
|
else
|
|
echo_failed
|
|
fatal Konnte Konfigurationsdatei \"${MYSQL_INSTALL_DIR}/sys-maint.cnf\" nicht erstellen..
|
|
fi
|
|
|
|
|
|
echononl "Erstelle Logrotate Definitionsdatei /etc/logrotate.d/mysql.."
|
|
cat << EOF > /etc/logrotate.d/mysql
|
|
$_mysql_log
|
|
$_mysql_error_log
|
|
$_mysql_slow_query_log
|
|
{
|
|
daily
|
|
rotate 7
|
|
missingok
|
|
create 640 $MYSQL_USER $MYSQL_GROUP
|
|
compress
|
|
sharedscripts
|
|
postrotate
|
|
MYSQL="`dirname $MYSQL_INSTALL_DIR`/mysql/bin/mysql --defaults-file=$_maint_conf_file"
|
|
MYADMIN="`dirname $MYSQL_INSTALL_DIR`/mysql/bin/mysqladmin --defaults-file=$_maint_conf_file"
|
|
if [ -z "\`\$MYADMIN ping 2>/dev/null\`" ]; then
|
|
echo "Warning: no mysqld running or missing sys-maint user?"
|
|
else
|
|
\$MYSQL -e 'select @@global.long_query_time into @lqt_save; set global long_query_time=2000; select sleep(2); FLUSH LOGS; select sleep(2); set global long_query_time=@lqt_save;' > /dev/null
|
|
fi
|
|
endscript
|
|
}
|
|
EOF
|
|
if [ "$?" = "0" ]; then
|
|
echo_ok
|
|
else
|
|
echo_failed
|
|
fatal Konnte Logrotate Definitionsdatei \"/etc/logrotate.d/mysql\" nicht erstellen..
|
|
fi
|
|
|
|
|
|
echo
|
|
exit
|