From bb8eb7411689b365172843dd30e8ce67cd94bdeb Mon Sep 17 00:00:00 2001 From: Christoph Date: Sun, 19 Feb 2017 17:00:09 +0100 Subject: [PATCH] Initial import --- .gitignore | 3 + install_mariadb.sh | 2319 +++++++++++++++++++++++++++++++++ stopwords_utf8_iso8859-15.txt | 1159 ++++++++++++++++ 3 files changed, 3481 insertions(+) create mode 100644 .gitignore create mode 100755 install_mariadb.sh create mode 100644 stopwords_utf8_iso8859-15.txt diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..8018589 --- /dev/null +++ b/.gitignore @@ -0,0 +1,3 @@ +/BAK/* +/log* +/mariadb* diff --git a/install_mariadb.sh b/install_mariadb.sh new file mode 100755 index 0000000..8a590db --- /dev/null +++ b/install_mariadb.sh @@ -0,0 +1,2319 @@ +#!/usr/bin/env bash + +_MARIADB_VERSION=10.1.21 + +_MARIADB_SRC_BASE_DIR=/usr/local/src/MariaDB + +_MARIADB_LOG_DIR=/var/log/mysql + +_MARIADB_PORT=3306 +_MARIADB_UNIX_SOCKET=/tmp/mysql.sock + + +_MARIADB_USER=mysql +_MARIADB_GROUP=mysql + +_DISTRIBUTION=Debian + +#_VSERVER_GUEST=ja +_VSERVER_GUEST=nein + +_required_debian_packages="libevent-dev + libjemalloc-dev + libboost-all-dev + libreadline-gplv2-dev + libjudy-dev + libpam0g-dev + libpcre3-dev + default-jdk" + + +## - Let make use multiple cores (-j) +## - +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 "fataler Fehler: $*" + echo "" + echo -e "\t\033[31m\033[1mInstalllation wird abgebrochen\033[m\033[m" + echo "" + exit 1 +} + +error(){ + echo "" + echo -e "\t[ \033[31m\033[1mFehler\033[m ]: $*" + echo "" +} + +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 MariaDB 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_MARIADB="" +echo "" +echo -e "\033[32m--\033[m" +echo "" +echo "Soll eine vorhanden MariaDB Installation geupdateted werden?" +echo "" +echo "[1] Neuinstallation" +echo "[2] Update vorhandener Installation" +echo "" +echononl "Eingabe: " + + +while [ "$_UPDATE_MARIADB" != "update" -a "$_UPDATE_MARIADB" != "new" ];do + read OPTION + case $OPTION in + 1) _UPDATE_MARIADB="new" + ;; + 2) _UPDATE_MARIADB="update" + ;; + *) echo "" + echo -e "\tFalsche Eingabe ! [ 1 = Neuinstallation ; 2 = Update ]" + echo "" + echononl "Eingabe:" + ;; + esac +done +if [ "$_UPDATE_MARIADB" = "update" ];then + UPDATE_MARIADB=true +else + UPDATE_MARIADB=false +fi + + +clear +echo -e "\033[21G\033[32mInstallationsscript für die MariaDB Datenbank \033[m" +echo "" +echo -e "\033[32m--\033[m" +echo "" +echo "Gib die Versionsnummer der MariaDB-Distribution an." +echo "" +MARIADB_VERSION= +while [ "X$MARIADB_VERSION" = "X" ] +do + echononl "MariaDB Version [$_MARIADB_VERSION]: " + read MARIADB_VERSION + if [ "X$MARIADB_VERSION" = "X" ]; then + MARIADB_VERSION=$_MARIADB_VERSION + fi + + _MARIADB_INSTALL_DIR=/usr/local/mariadb-$MARIADB_VERSION + _MARIADB_DATA_DIR=/data/mariadb-$MARIADB_VERSION + distfile=mariadb-${MARIADB_VERSION}.tar.gz +done +MARIADB_MAJOR_VERSION=`echo $MARIADB_VERSION | cut -d '.' -f1,2` + +echo "" +echo -e "\033[32m--\033[m" +echo "" +echo "Gib den Namen des MariaDB Sourceverzeichnisses an." +echo "" +MARIADB_SRC_BASE_DIR= +while [ "X$MARIADB_SRC_BASE_DIR" = "X" ] +do + echononl "MariaDB Sourceverzeichnis [${_MARIADB_SRC_BASE_DIR}]: " + read MARIADB_SRC_BASE_DIR + if [ "X$MARIADB_SRC_BASE_DIR" = "X" ]; then + MARIADB_SRC_BASE_DIR=$_MARIADB_SRC_BASE_DIR + fi +done +MARIADB_SRC_DIR=${MARIADB_SRC_BASE_DIR}/mariadb-$MARIADB_VERSION + +echo "" +echo -e "\033[32m--\033[m" +echo "" +echo "Gib den Namen des Verzeichnisses in das MariaDB installiert werden soll an." +echo "" +MARIADB_INSTALL_DIR= +while [ "X$MARIADB_INSTALL_DIR" = "X" ] +do + echononl "MariaDB Installationsverzeichnis [${_MARIADB_INSTALL_DIR}]: " + read MARIADB_INSTALL_DIR + if [ "X$MARIADB_INSTALL_DIR" = "X" ]; then + MARIADB_INSTALL_DIR=$_MARIADB_INSTALL_DIR + LINK=yes + fi + + logdir=${MARIADB_SRC_BASE_DIR}/log-$MARIADB_VERSION + +done + +echo "" +echo -e "\033[32m--\033[m" +echo "" +echo "Gib den Namen des Verzeichnisses für die MariaDB-Datenbanken an." +echo "" +MARIADB_DATA_DIR= +while [ "X$MARIADB_DATA_DIR" = "X" ] +do + echononl "MariaDB Datenbankverzeichnis [$_MARIADB_DATA_DIR]: " + read MARIADB_DATA_DIR + if [ "X$MARIADB_DATA_DIR" = "X" ]; then + MARIADB_DATA_DIR=$_MARIADB_DATA_DIR + fi +done + +echo "" +echo -e "\033[32m--\033[m" +echo "" +echo "Gib den Namen des LOG-Verzeichnisses für die MariaDB an. !! NICHT für binäre logfiles !!" +echo "" +MARIADB_LOG_DIR= +while [ "X$MARIADB_LOG_DIR" = "X" ] +do + echononl "MariaDB LOG Verzeichniss [$_MARIADB_LOG_DIR]: " + read MARIADB_LOG_DIR + if [ "X$MARIADB_LOG_DIR" = "X" ]; then + MARIADB_LOG_DIR=$_MARIADB_LOG_DIR + fi +done + +echo "" +echo -e "\033[32m--\033[m" +echo "" +echo "Gib den TCP Port für MariaDB an (voreingestell \"${MARIADB_PORT}\")." +echo "" +MARIADB_PORT= +while [ "X$MARIADB_PORT" = "X" ] +do + echononl "MariaDB TCP Port [$_MARIADB_PORT]: " + read MARIADB_PORT + if [ "X$MARIADB_PORT" = "X" ]; then + MARIADB_PORT=$_MARIADB_PORT + fi +done + +echo "" +echo -e "\033[32m--\033[m" +echo "" +echo "Gib den Unix Socket für MariaDB an (voreingestell \"${_MARIADB_UNIX_SOCKET}\")." +echo "" +MARIADB_UNIX_SOCKET= +while [ "X$MARIADB_UNIX_SOCKET" = "X" ] +do + echononl "MariaDB UNIX Socket [$_MARIADB_UNIX_SOCKET]: " + read MARIADB_UNIX_SOCKET + if [ "X$MARIADB_UNIX_SOCKET" = "X" ]; then + MARIADB_UNIX_SOCKET=$_MARIADB_UNIX_SOCKET + fi +done + +echo "" +echo "--" +echo "" +echo "Gib den User-Namen und die User-Gruppe unter dem der MariaDB-Daemon laufen soll an." +echo "" +MARIADB_USER= +while [ "X$MARIADB_USER" = "X" ] +do + echononl "MariaDB-User [${_MARIADB_USER}]: " + read MARIADB_USER + if [ "X$MARIADB_USER" = "X" ]; then + MARIADB_USER=$_MARIADB_USER + fi +done +MARIADB_GROUP= +while [ "X$MARIADB_GROUP" = "X" ] +do + echononl "MariaDB-Gruppe [$MARIADB_USER]: " + read MARIADB_GROUP + if [ "X$MARIADB_GROUP" = "X" ]; then + MARIADB_GROUP=$MARIADB_USER + fi +done + +clear +echo -e "\033[21G\033[32mInstallationsscript für die MariaDB Datenbank \033[m" +echo "" +echo -e "\033[32m--\033[m" +echo "" +echo "Gib ein Passwort für den root user an.." +echo "" +_MARIADB_ROOT_PW_1="X" +_MARIADB_ROOT_PW_2="Y" +while [ "$_MARIADB_ROOT_PW_1" != "$_MARIADB_ROOT_PW_2" ] +do + echononl "Passworteingabe: " + read -s _MARIADB_ROOT_PW_1 + echo + if [ "X$_MARIADB_ROOT_PW_1" = "X" ]; then + echo -e "\n\t\033[33m\033[1mPassworteingabe erforderlich!\033[m\n" + continue + fi + echononl "Passwortwiederholung: " + read -s _MARIADB_ROOT_PW_2 + echo + if [ "X$_MARIADB_ROOT_PW_2" = "X" ]; then + echo -e "\n\t\033[33m\033[1mPasswortwiederholung erforderlich!\033[m\n" + continue + fi + if [ "$_MARIADB_ROOT_PW_1" != "$_MARIADB_ROOT_PW_2" ];then + echo -e "\n\t\033[33m\033[1mPassworteingaben sind nicht identisch!\033[m\n" + else + MARIADB_ROOT_PW=$_MARIADB_ROOT_PW_1 + fi +done + +if $UPDATE_MARIADB ; 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 MariaDB 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 $MARIADB_INSTALL_DIR`/mysql" +echo " - Setze Sysmlink for das Datenverzeichnis `dirname $MARIADB_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 + + + +OK= +echo "" +echo -e "\033[32m--\033[m" +echo "" +echo "Ist dies ein VServer Gastsystem?" +echo "" +echononl "VServer Gastsystem (ja/nein) [$_VSERVER_GUEST]: " +read OK +if [ "X$OK" = "X" ]; then + OK=$_VSERVER_GUEST +fi +OK=`echo "$OK" | tr '[:upper:]' '[:lower:]'` +while [ "X$OK" != "Xja" -a "X$OK" != "Xnein" ]; do + echo "" + echononl "\twrong entry! [ja/nein]: " + read OK + OK=`echo "$OK" | tr '[:upper:]' '[:lower:]'` +done +if [ "$OK" = "ja" ]; then + SYSTEMD_EXISTS=false +else + if [ "X`which systemd`" = "X" ]; then + SYSTEMD_EXISTS=false + else + SYSTEMD_EXISTS=true + fi +fi + + +clear +echo -e "\033[21G\033[32mStarte Installation mit folgenden Parametern:\033[m" +echo "" +if ! $UPDATE_MARIADB ; 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 "" +echo "MariaDB Versionsnummer....: $MARIADB_VERSION" +echo " MariaDB Major Verion....: $MARIADB_MAJOR_VERSION" +echo "" +echo "Sourcecodeverzeicnis......: $MARIADB_SRC_BASE_DIR" +echo "Installationsverzeichnis..: $MARIADB_INSTALL_DIR" +echo "Datenbankverzeichnis......: $MARIADB_DATA_DIR" +echo "Log Verzeichnis...........: $MARIADB_LOG_DIR" +echo "TCP Port..................: $MARIADB_PORT" +echo "Unix Socket...............: $MARIADB_UNIX_SOCKET" +echo "MariaDB-User..............: $MARIADB_USER" +echo "MariaDB-Gruppe............: $MARIADB_GROUP" +echo "" +echo "Symlink Initskript........: $SYMLINK_INITSCRIPT" +echo "Symlink Installationsverz.: $SYMLINK_INSTALL_DIR" +echo "Symlink Datenverzeichnis..: $SYMLINK_DATA_DIR" +echo "" +echo "Using systemd.............: $SYSTEMD_EXISTS" +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 ${MARIADB_SRC_BASE_DIR} ] ; then + mkdir -p $MARIADB_SRC_BASE_DIR + #fatal "Kann MariaDB Sourcecode Verzeichnis \"${MARIADB_SRC_BASE_DIR}\" nicht finden." +fi + + +## - Sorcecode vorhanden? +## - +if [ ! -f ${MARIADB_SRC_BASE_DIR}/$distfile ] ; then + + echo "" + + echononl "Download $distfile ..." + wget -O ${MARIADB_SRC_BASE_DIR}/$distfile http://ftp.hosteurope.de/mirror/archive.mariadb.org/mariadb-${MARIADB_VERSION}/source/$distfile 2>/dev/null + + if [ "$?" = "0" ]; then + echo_ok + else + echo_failed + fatal "Downloading $distfile (https://ftp.hosteurope.de/mirror/archive.mariadb.org/mariadb-${MARIADB_VERSION}/source/$distfile) Fehlgeschlagen." + fi +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_MARIADB ; 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 "## - " >> ${logdir}/main.log +echo "## - MariaDB Versionsnummer....: $MARIADB_VERSION" >> ${logdir}/main.log +echo "## - MariaDB Major Verion...: $MARIADB_MAJOR_VERSION" >> ${logdir}/main.log +echo "## - " >> ${logdir}/main.log +echo "## - Sourcecodeverzeicnis......: $MARIADB_SRC_BASE_DIR" >> ${logdir}/main.log +echo "## - Installationsverzeichnis..: $MARIADB_INSTALL_DIR" >> ${logdir}/main.log +echo "## - Datenbankverzeichnis......: $MARIADB_DATA_DIR" >> ${logdir}/main.log +echo "## - Log Verzeichnis...........: $MARIADB_LOG_DIR" >> ${logdir}/main.log +echo "## - TCP Port..................: $MARIADB_PORT" >> ${logdir}/main.log +echo "## - Unix Socket...............: $MARIADB_UNIX_SOCKET" >> ${logdir}/main.log +echo "## - MariaDB-User..............: $MARIADB_USER" >> ${logdir}/main.log +echo "## - MariaDB-Gruppe............: $MARIADB_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_MARIADB=$UPDATE_MARIADB" >> ${logdir}/main.log +echo "" >> ${logdir}/main.log +echo "DISTRIBUTION=$DISTRIBUTION" >> ${logdir}/main.log +echo "" >> ${logdir}/main.log +echo "MARIADB_VERSION=$MARIADB_VERSION" >> ${logdir}/main.log +echo "MARIADB_SRC_BASE_DIR=$MARIADB_SRC_BASE_DIR" >> ${logdir}/main.log +echo "MARIADB_INSTALL_DIR=$MARIADB_INSTALL_DIR" >> ${logdir}/main.log +echo "MARIADB_DATA_DIR=$MARIADB_DATA_DIR" >> ${logdir}/main.log +echo "MARIADB_LOG_DIR=$MARIADB_LOG_DIR" >> ${logdir}/main.log +echo "MARIADB_PORT=$MARIADB_PORT" >> ${logdir}/main.log +echo "MARIADB_UNIX_SOCKET=$MARIADB_UNIX_SOCKET" >> ${logdir}/main.log +echo "MARIADB_USER=$MARIADB_USER" >> ${logdir}/main.log +echo "MARIADB_GROUP=$MARIADB_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 + + +_MARIADB_INITSCRIPT= +if [ -f /etc/init.d/mysql.server ];then + _MARIADB_INITSCRIPT="mysql.server" +elif [ -f /etc/init.d/mysql ];then + _MARIADB_INITSCRIPT="mysql" +fi + +if ! $UPDATE_MARIADB ; then + + if [ "X${_MARIADB_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 + if $SYSTEMD_EXISTS ; then + echo "systemctl stop mysql.server" >> ${logdir}/main.log + systemctl stop mysql.server >> ${logdir}/main.log 2>&1 + else + echo "/etc/init.d/$_MARIADB_INITSCRIPT stop" >> ${logdir}/main.log + /etc/init.d/$_MARIADB_INITSCRIPT stop >> ${logdir}/main.log 2>&1 + fi + sleep 5 + PID=`ps aux | grep "mysqld_safe" | grep -v grep | awk '{print$2}'` + if [ "X${PID}X" = "XX" ]; then + echo_ok + else + echo_failed + + PID=`ps aux | grep "mysqld" | grep -v grep | awk '{print$2}'` + echononl "Abbruch (kill -9) aller mysqld Prozesse.." + echo "" >> ${logdir}/main.log + echo "kill -9 $PID" >> ${logdir}/main.log 2>&1 + kill -9 $PID + if [ "$?" = "0" ]; then + echo_ok + else + echo_failed + fi + fi + + 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 $_MARIADB_INITSCRIPT remove" >> ${logdir}/main.log + update-rc.d -f $_MARIADB_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/$_MARIADB_INITSCRIPT" ]; then + echononl "Entferne existierendes Initskript" + echo "" >> ${logdir}/main.log + echo "rm -f /etc/init.d/$_MARIADB_INITSCRIPT" >> ${logdir}/main.log + rm -f /etc/init.d/$_MARIADB_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 + + + echononl "Update index files of the debian repositories" + echo "apt-get update" >> ${logdir}/apt-install.log + apt-get update >> ${logdir}/apt-install.log 2>&1 + if [ "$?" = "0" ]; then + echo_ok + echo "" >> ${logdir}/apt-install.log + else + echo_failed + fatal "\"apt-get update\" failed!" + fi + + ## - Install cmake if not exists + ## + echononl "Installing \"cmake\".." + _cmake=`which cmake` + if [ "X$_cmake" = "X" ]; then + echo "DEBIAN_FRONTEND=noninteractive apt-get install -q -y cmake" >> ${logdir}/apt-install.log + DEBIAN_FRONTEND=noninteractive apt-get install -q -y cmake >> ${logdir}/apt-install.log 2>&1 + if [ "$?" = "0" ]; then + echo_ok + echo "" >> ${logdir}/apt-install.log + else + echo_failed + fatal Kann \"cmake\" nicht installieren.. + fi + else + echo_skipped + fi + + ## - Install dependency packages for \"mysql-server\" + ## - + echononl "Installing dependency packages for \"mysql-server\"" + echo "DEBIAN_FRONTEND=noninteractive apt-get -q -y build-dep mysql-server" >> ${logdir}/apt-install.log 2>&1 + + DEBIAN_FRONTEND=noninteractive apt-get -q -y build-dep mysql-server >> ${logdir}/apt-install.log 2>&1 + if [ "$?" = 0 ]; then + echo_ok + echo "" >> ${logdir}/apt-install.log + else + echo_failed + fatal "Installing dependency packages for \"mysql-server\" failed!" + fi + + if apt-cache search mariadb-server | grep -q -E "^mariadb-server" > /dev/null 2>&1 ; then + echononl "Installing dependency packages for \"mariadb-server\"" + echo "DEBIAN_FRONTEND=noninteractive apt-get -q -y build-dep mariadb-server" >> ${logdir}/apt-install.log 2>&1 + + DEBIAN_FRONTEND=noninteractive apt-get -q -y build-dep mariadb-server >> ${logdir}/apt-install.log 2>&1 + if [ "$?" = 0 ]; then + echo_ok + echo "" >> ${logdir}/apt-install.log + else + echo_failed + fatal "Installing dependency packages for \"mariadb-server\" failed!" + fi + fi + + ## - Install further debian packages + ## - + declare -a deb_package_arr + for _debian_pkg in $_required_debian_packages ; do + deb_package_arr+=("$_debian_pkg") + done + + for _debian_pkg in ${deb_package_arr[@]} ; do + + echononl "Installing $_debian_pkg .." + if ! dpkg -l $_debian_pkg 2> /dev/null | grep -e "^ii" > /dev/null 2>&1 ; then + + echo "" >> ${logdir}/apt-install.log + echo "DEBIAN_FRONTEND=noninteractive apt-get install -q -y $_debian_pkg" >> ${logdir}/apt-install.log + + DEBIAN_FRONTEND=noninteractive apt-get install -q -y $_debian_pkg >> ${_logdir}/debian-install.log 2>&1 + if [ "$?" = 0 ]; then + echo_ok + echo "" >> ${logdir}/apt-install.log + else + echo_failed + error "Installing debian package \"$_debian_pkg\" failed!" + if [[ "$_debian_pkg" = "default-jdk" ]]; then + warn "Maybe deinstallation of \"hdparm\" solved this problem " + fi + fi + else + echo_skipped + fi + done + + if ! grep -q -E "export\s*JAVA_HOME" /etc/profile.d/* > /dev/null 2>&1 ; then + echo "export JAVA_HOME=/usr/lib/jvm/default-java" >> /etc/profile.d/java.sh + export JAVA_HOME=/usr/lib/jvm/default-java + fi + + echononl "Adding Group \"$MARIADB_GROUP\".." + if cat /etc/group | grep -e "^${MARIADB_GROUP}:" > /dev/null 2>&1 ; then + echo_skipped + else + groupadd -r $MARIADB_GROUP > ${logdir}/groupadd.log 2>&1 + if [ "$?" = "0" ]; then + echo_ok + else + echo_failed + fatal Kann Gruppe \"${MARIADB_GROUP}\" nicht erstellen.. + fi + fi + + echononl "Adding User \"$MARIADB_USER\".." + if id -u $MARIADB_USER > /dev/null 2>&1; then + echo_skipped + else + useradd -r -M -d /noexistent -s /bin/false -g $MARIADB_GROUP $MARIADB_USER > ${logdir}/useradd.log 2>&1 + if [ "$?" = "0" ]; then + echo_ok + else + echo_failed + fatal Kann User \"${MARIADB_USER}\" nicht erstellen.. + fi + fi +fi + + +if [ -d $MARIADB_DATA_DIR ]; then + echononl "Verschiebe exitierendes MariaDB Datenbank-Verzeichnis ..." + echo "" >> ${logdir}/main.log + echo "mv $MARIADB_DATA_DIR ${MARIADB_DATA_DIR}.`date +\"%Y%m%d-%H%M\"`" >> ${logdir}/main.log + mv $MARIADB_DATA_DIR ${MARIADB_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 \"${MARIADB_DATA_DIR}\" nicht verschieben.. + fi +fi + + +echononl "Erstelle Datenbank-Verzeichnis \"$MARIADB_DATA_DIR\".." +echo "" >> ${logdir}/main.log +echo "mkdir -p $MARIADB_DATA_DIR" >> ${logdir}/main.log +mkdir -p $MARIADB_DATA_DIR >> ${logdir}/main.log 2>&1 +if [ "$?" = "0" ]; then + echo_ok +else + echo_failed + fatal Kann Datenbank-Verzeichnis \"${MARIADB_DATA_DIR}\" nicht erstellen.. +fi + +echononl "Setze Besitzer \"${MARIADB_USER}:${MARIADB_GROUP}\" für Datenbank-Verzeichnis" +echo "" >> ${logdir}/main.log +echo "chown -R ${MARIADB_USER}:${MARIADB_GROUP} ${MARIADB_DATA_DIR}" >> ${logdir}/main.log +chown -R ${MARIADB_USER}:${MARIADB_GROUP} ${MARIADB_DATA_DIR} >> ${logdir}/main.log 2>&1 +if [ "$?" = "0" ]; then + echo_ok +else + echo_failed + fatal Kann Besitzer für Datenbank-Verzeichnis \"${MARIADB_DATA_DIR}\" nicht ändern.. +fi + +echononl "Setze Verzeichnisrechte \"700\" für Datenbank-Verzeichnis" +echo "" >> ${logdir}/main.log +echo "chmod 700 ${MARIADB_DATA_DIR}" >> ${logdir}/main.log +chmod 700 ${MARIADB_DATA_DIR} >> ${logdir}/main.log 2>&1 +if [ "$?" = "0" ]; then + echo_ok +else + echo_failed + fatal Kann Verzeichnisrechte für Datenbank-Verzeichnis \"${MARIADB_DATA_DIR}\" nicht ändern.. +fi + + +echononl "Erstelle LOG Verzeichnis \"$MARIADB_LOG_DIR\".." +echo "" >> ${logdir}/main.log +echo "mkdir -p $MARIADB_LOG_DIR" >> ${logdir}/main.log +mkdir -p $MARIADB_LOG_DIR >> ${logdir}/main.log 2>&1 +if [ "$?" = "0" ]; then + echo_ok + _mariadb_log=${MARIADB_LOG_DIR}/mysql.log + _mariadb_error_log=${MARIADB_LOG_DIR}/mysql.err + _mariadb_slow_query_log=${MARIADB_LOG_DIR}/slow_query.log +else + echo_failed + fatal Kann LOG Verzeichnis \"${MARIADB_LOG_DIR}\" nicht erstellen.. +fi + +echononl "Setze Besitzer \"${MARIADB_USER}:${MARIADB_GROUP}\" für LOG Verzeichnis" +echo "" >> ${logdir}/main.log +echo "chown -R ${MARIADB_USER}:${MARIADB_GROUP} ${MARIADB_LOG_DIR}" >> ${logdir}/main.log +chown -R ${MARIADB_USER}:${MARIADB_GROUP} ${MARIADB_LOG_DIR} >> ${logdir}/main.log 2>&1 +if [ "$?" = "0" ]; then + echo_ok +else + echo_failed + fatal Kann Besitzer für LOG Verzeichnis \"${MARIADB_LOG_DIR}\" nicht ändern.. +fi + +echononl "Setze Verzeichnisrechte \"2750\" für LOG Verzeichnis" +echo "" >> ${logdir}/main.log +echo "chmod 2750 ${MARIADB_LOG_DIR}" >> ${logdir}/main.log +chmod 2750 ${MARIADB_LOG_DIR} >> ${logdir}/main.log 2>&1 +if [ "$?" = "0" ]; then + echo_ok +else + echo_failed + fatal Kann Verzeichnisrechte für LOG Verzeichnis \"${MARIADB_LOG_DIR}\" nicht ändern.. +fi + + +#if [ -d "${MARIADB_SRC_BASE_DIR}/mariadb-$MARIADB_VERSION" ];then +# echononl "Verschiebe exitierendes Sourceverzeichnis ..." +# echo "" >> ${logdir}/main.log +# echo "mv ${MARIADB_SRC_BASE_DIR}/mariadb-$MARIADB_VERSION ${MARIADB_SRC_BASE_DIR}/mariadb-$MARIADB_VERSION.`date +\"%Y%m%d-%H%M\"`" >> ${logdir}/main.log +# mv ${MARIADB_SRC_BASE_DIR}/mariadb-$MARIADB_VERSION ${MARIADB_SRC_BASE_DIR}/mariadb-$MARIADB_VERSION.`date +"%Y%m%d-%H%M"` \ +# >> ${logdir}/main.log 2>&1 +# if [ "$?" = "0" ]; then +# echo_ok +# else +# echo_failed +# fatal Kann Sourceverzeichnis \"${MARIADB_SRC_BASE_DIR}/mariadb-$MARIADB_VERSION\" nicht verschieben.. +# fi +#fi + + +if [ -d "${MARIADB_SRC_DIR}" ];then + echononl "Verschiebe exitierendes Sourceverzeichnis ..." + echo "" >> ${logdir}/main.log + echo "mv ${MARIADB_SRC_DIR} ${MARIADB_SRC_DIR}.`date +\"%Y%m%d-%H%M\"`" >> ${logdir}/main.log + mv ${MARIADB_SRC_DIR} ${MARIADB_SRC_DIR}.`date +"%Y%m%d-%H%M"` >> ${logdir}/main.log 2>&1 + if [ "$?" = "0" ]; then + echo_ok + else + echo_failed + fatal Kann Sourceverzeichnis \"${MARIADB_SRC_DIR}\" nicht verschieben.. + fi +fi + + +cd $MARIADB_SRC_BASE_DIR +echo "" >> ${logdir}/main.log +echo "cd $MARIADB_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 MariaDB Sourcearchiv \"${distfile}\" nicht entpacken.. +fi + +cd ${MARIADB_SRC_DIR} +echo "" >> ${logdir}/main.log +echo "cd ${MARIADB_SRC_DIR}" >> ${logdir}/main.log + +if [ -d ${MARIADB_INSTALL_DIR} ];then + echononl "Verschiebe exitierendes Installationsverzeichnis ..." + echo "" >> ${logdir}/main.log + echo "mv $MARIADB_INSTALL_DIR $MARIADB_INSTALL_DIR.`date +\"%Y%m%d-%H%M\"`" >> ${logdir}/main.log + mv $MARIADB_INSTALL_DIR $MARIADB_INSTALL_DIR.`date +"%Y%m%d-%H%M"` >> ${logdir}/main.log 2>&1 + if [ "$?" = "0" ]; then + echo_ok + else + echo_failed + fatal Kann Installationsverzeichnis \"${MARIADB_INSTALL_DIR}\" nicht verschieben.. + fi +fi + +echononl "Konfiguriere MariaDB (cmake).." +echo "" >> ${logdir}/main.log +echo "cmake -D CMAKE_INSTALL_PREFIX=$MARIADB_INSTALL_DIR -D MYSQL_DATADIR=$MARIADB_DATA_DIR . " >> ${logdir}/main.log +cmake -D CMAKE_INSTALL_PREFIX=$MARIADB_INSTALL_DIR \ + -D MYSQL_DATADIR=$MARIADB_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 MariaDB" +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 MariaDB Sourcen ist fehlgeschlagen. Siehe ${logdir}/make.log .. +fi + +echononl "Installiere MariaDB" +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 MariaDB 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 + error Kann Symlink /etc/init.d/mysql.server nicht entfernen.. + fi + fi + + if [[ -f "/etc/init.d/mysql.server" ]]; then + echononl "Entferne Startscript \"/etc/init.d/mysql.server\".." + echo "" >> ${logdir}/main.log + echo "rm /etc/init.d/mysql.server" >> ${logdir}/main.log + rm /etc/init.d/mysql.server >> ${logdir}/main.log 2>&1 + if [ "$?" = "0" ]; then + echo_ok + else + echo_failed + error Kann Startscript /etc/init.d/mysql.server nicht entfernen.. + fi + fi + + echononl "Erstelle Symlink \"/etc/init.d/mysql.server\".." + echo "" >> ${logdir}/main.log + echo "ln -s $MARIADB_INSTALL_DIR/support-files/mysql.server /etc/init.d/mysql.server" >> ${logdir}/main.log + ln -s $MARIADB_INSTALL_DIR/support-files/mysql.server /etc/init.d/mysql.server >> ${logdir}/main.log 2>&1 + if [ "$?" = "0" ]; then + echo_ok + else + echo_failed + error "Kann Symlink $MARIADB_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/" $(realpath /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 Installationsverzeichnis (i.d.R. /usr/local/mysql) +## - +if $SYMLINK_INSTALL_DIR ; then + + if [ -h `dirname $MARIADB_INSTALL_DIR`/mysql ]; then + echononl "Entferne vorhandenen Symlink `dirname $MARIADB_INSTALL_DIR`/mysql.." + echo "" >> ${logdir}/main.log + echo "rm `dirname $MARIADB_INSTALL_DIR`/mysql" >> ${logdir}/main.log + rm `dirname $MARIADB_INSTALL_DIR`/mysql >> ${logdir}/main.log 2>&1 + if [ "$?" = "0" ]; then + echo_ok + else + echo_failed + error Kann Symlink `dirname $MARIADB_INSTALL_DIR`/mysql nicht entfernen.. + fi + fi + + if [ -d `dirname $MARIADB_INSTALL_DIR`/mysql ]; then + echononl "Verschiebe Verzeichnis `dirname $MARIADB_INSTALL_DIR`/mysql ..." + echo "" >> ${logdir}/main.log + echo "mv `dirname $MARIADB_INSTALL_DIR`/mysql `dirname $MARIADB_INSTALL_DIR`/mysql.`date +\"%Y%m%d-%H%M\"`" \ + >> ${logdir}/main.log + mv `dirname $MARIADB_INSTALL_DIR`/mysql `dirname $MARIADB_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 \"${MARIADB_INSTALL_DIR}\" nicht verschieben.. + fi + fi + + echononl "Erstelle Symlink `dirname $MARIADB_INSTALL_DIR`/mysql --> $MARIADB_INSTALL_DIR" + echo "" >> ${logdir}/main.log + echo "ln -s `basename $MARIADB_INSTALL_DIR` `dirname $MARIADB_INSTALL_DIR`/mysql" >> ${logdir}/main.log + ln -s `basename $MARIADB_INSTALL_DIR` `dirname $MARIADB_INSTALL_DIR`/mysql >> ${logdir}/main.log 2>&1 + if [ "$?" = "0" ]; then + echo_ok + else + echo_failed + error Kann Symlink `basename $MARIADB_INSTALL_DIR` --> `dirname $MARIADB_INSTALL_DIR`/mysql nicht erstellen .. + fi +fi + +## - Symlink Datenverzeichnis +## - +if $SYMLINK_DATA_DIR ; then + + if [ -h `dirname $MARIADB_DATA_DIR`/mysql ]; then + echononl "Entferne vorhandenen Symlink `dirname $MARIADB_DATA_DIR`/mysql.." + echo "" >> ${logdir}/main.log + echo "rm `dirname $MARIADB_DATA_DIR`/mysql" >> ${logdir}/main.log + rm `dirname $MARIADB_DATA_DIR`/mysql >> ${logdir}/main.log 2>&1 + if [ "$?" = "0" ]; then + echo_ok + else + echo_failed + error Kann Symlink `dirname $MARIADB_DATA_DIR`/mysql nicht entfernen.. + fi + fi + + if [ -d `dirname $MARIADB_DATA_DIR`/mysql ]; then + echononl "Verschiebe Verzeichnis `dirname $MARIADB_DATA_DIR`/mysql ..." + echo "" >> ${logdir}/main.log + echo "mv `dirname $MARIADB_DATA_DIR`/mysql `dirname $MARIADB_DATA_DIR`/mysql.`date +\"%Y%m%d-%H%M\"`" \ + >> ${logdir}/main.log + mv `dirname $MARIADB_DATA_DIR`/mysql `dirname $MARIADB_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 \"${MARIADB_DATA_DIR}\" nicht verschieben.. + fi + fi + + echononl "Erstelle Symlink `dirname $MARIADB_DATA_DIR`/mysql --> $MARIADB_DATA_DIR" + echo "" >> ${logdir}/main.log + echo "ln -s `basename $MARIADB_DATA_DIR` `dirname $MARIADB_DATA_DIR`/mysql" >> ${logdir}/main.log + ln -s `basename $MARIADB_DATA_DIR` `dirname $MARIADB_DATA_DIR`/mysql >> ${logdir}/main.log 2>&1 + if [ "$?" = "0" ]; then + echo_ok + else + echo_failed + error Kann Symlink `basename $MARIADB_DATA_DIR` --> `dirname $MARIADB_DATA_DIR`/mysql nicht erstellen .. + fi +fi + + +echononl "Füge `dirname $MARIADB_INSTALL_DIR`/mysql/bin zur PATH Variable hinzu .." +if [ -f /etc/profile ]; then + _mariadb_bin_dir="`dirname $MARIADB_INSTALL_DIR`/mysql/bin" + if ! grep -e "PATH=.*$_mariadb_bin_dir" /etc/profile > /dev/null 2<&1 ; then + echo "" >> ${logdir}/main.log + echo "perl -i -n -p -e \"s#^([ ]*export[ ]*PATH.*$)#check_dir=\$_mariadb_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=$_mariadb_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 $_mariadb_bin_dir >> ${logdir}/main.log 2>&1 ; then + export PATH=${_mariadb_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 $MARIADB_INSTALL_DIR`/mysql/lib +EOF +if [ "$?" = "0" ]; then + echo_ok +else + echo_failed + error 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 + error "Der Befehl \"ldconfig\" ist fehgeschlagen" +fi + +if [ -f ${MARIADB_INSTALL_DIR}/my.cnf ]; then + echononl "Sichere Konfigurationsdatei.." + echo "" >> ${logdir}/main.log + echo "${MARIADB_INSTALL_DIR}/my.cnf ${MARIADB_INSTALL_DIR}" >> ${logdir}/main.log + mv ${MARIADB_INSTALL_DIR}/my.cnf ${MARIADB_INSTALL_DIR}/my.cnf.ORIG + if [ "$?" = "0" ]; then + echo_ok + else + echo_failed + error Konnte Konfigurationsdatei ${MARIADB_INSTALL_DIR}/my.cnf nicht sichern.. + fi +fi + +echononl "Erstelle Konfigurationsdatei ${MARIADB_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 MARIADB_THREAD_CONCURRENCY=$_number_cpus*2" >> ${logdir}/main.log +let MARIADB_THREAD_CONCURRENCY=$_number_cpus*2 + +echo "" >> ${logdir}/main.log +echo "\$MARIADB_THREAD_CONCURRENCY = $MARIADB_THREAD_CONCURRENCY" >> ${logdir}/main.log + +cat << EOF > ${MARIADB_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 = $MARIADB_PORT +socket = $MARIADB_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 = $MARIADB_UNIX_SOCKET +nice = 0 + +open-files-limit = `ulimit -Hn` +innodb_open_files = `ulimit -Hn` + + +# The MySQL server +[mysqld] +port = $MARIADB_PORT +socket = $MARIADB_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 = 127.0.0.1 + + +# 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=, MASTER_PORT=, +# MASTER_USER=, MASTER_PASSWORD= ; +# +# where you replace , , by quoted strings and +# 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 = +# +# The username the slave will use for authentication when connecting +# to the master - required +#master-user = +# +# The password the slave will authenticate with when connecting to +# the master - required +#master-password = +# +# The port the master is listening on. +# optional - defaults to 3306 +#master-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 $MARIADB_INSTALL_DIR`/mysql/share +## - +## - bis 5.1.x +## - +## - language=`dirname $MARIADB_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 32768 +## - root hard nofile 32768 +## - +## - 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_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_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_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_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 + + +## - 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_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 + + +## - 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_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_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_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 = $_mariadb_error_log + + +## - Query Log +## - +#general-log = on +#general_log_file = $_mariadb_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_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_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 -slow.log +## - +slow_query_log_file = $_mariadb_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 + + + +## - 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 = 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 + + +## - 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 + +## - angepasste Einstellungen +## ------------------------------------------ + + +[mysqlhotcopy] +interactive-timeout + +EOF +if [ "$?" = "0" ]; then + echo_ok +else + echo_failed + error Konnte Konfigurationsdatei \"${MARIADB_INSTALL_DIR}/my.cnf\" nicht erstellen.. +fi + +echononl "Kopiere \"stopwords_utf8_iso8859-15.txt\" -> ${MARIADB_INSTALL_DIR}.." +if [ -f "${MARIADB_SRC_BASE_DIR}/stopwords_utf8_iso8859-15.txt" ];then + cp ${MARIADB_SRC_BASE_DIR}/stopwords_utf8_iso8859-15.txt ${MARIADB_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 ${MARIADB_INSTALL_DIR} kopieren" + fi +else + echo_skipped + warn "Konnte ${MARIADB_SRC_BASE_DIR}/stopwords_utf8_iso8859-15.txt finden." +fi + +echo +echononl "Richte MySQL Systemtabellen ein.." +cd $MARIADB_INSTALL_DIR +echo "" >> ${logdir}/main.log +echo "./scripts/mysql_install_db \ " >> ${logdir}/main.log +echo " --user=$MARIADB_USER \ " >> ${logdir}/main.log +echo " --basedir=$MARIADB_INSTALL_DIR \ " >> ${logdir}/main.log +echo " --datadir=$MARIADB_DATA_DIR \ " >> ${logdir}/main.log +echo " --language=$MARIADB_INSTALL_DIR/share/german" >> ${logdir}/main.log +echo "" >> ${logdir}/main.log + +./scripts/mysql_install_db \ + --basedir=$MARIADB_INSTALL_DIR \ + --datadir=$MARIADB_DATA_DIR \ + --user=$MARIADB_USER \ + >> ${logdir}/main.log 2>&1 +if [ "$?" = "0" ]; then + echo_ok +else + echo_failed + fatal Das Einrichten der MySQL Systemtabellen ist fehlgeschlagen.. +fi + +echononl "Create directory \"mysql-files\".." +cd $MARIADB_INSTALL_DIR +echo "" >> ${logdir}/main.log +echo "mkdir mysql-files" >> ${logdir}/main.log +mkdir mysql-files >> ${logdir}/main.log 2>&1 +if [ "$?" = "0" ]; then + echo_ok +else + echo_failed +fi + +echononl "Change rights (770) to directory \"mysql-files\".." +echo "chmod 770 mysql-files" >> ${logdir}/main.log +chmod 770 ${MARIADB_INSTALL_DIR}/mysql-files >> ${logdir}/main.log 2>&1 +if [ "$?" = "0" ]; then + echo_ok +else + echo_failed +fi + +echononl "Change owner ($MARIADB_USER) of directory \"mysql-files\".." +echo "chown $MARIADB_USER mysql-files" >> ${logdir}/main.log +chown $MARIADB_USER ${MARIADB_INSTALL_DIR}/mysql-files >> ${logdir}/main.log 2>&1 +if [ "$?" = "0" ]; then + echo_ok +else + echo_failed +fi + +echononl "Generate MySQL SSL Certificate and RSA Key.." +cd $MARIADB_INSTALL_DIR +if [[ -x "$MARIADB_INSTALL_DIRbin/mysql_ssl_rsa_setup" ]] ; then + echo "bin/mysql_ssl_rsa_setup --datadir=$MARIADB_DATA_DIR .." >> ${logdir}/main.log + bin/mysql_ssl_rsa_setup --datadir=$MARIADB_DATA_DIR >> ${logdir}/main.log 2>&1 + if [ "$?" = "0" ]; then + echo_ok + else + echo_failed + fi +else + echo_skipped + warn "Script for generating certificates (mysql_ssl_rsa_setup) is not supported" +fi + +echononl "Setze Besitzer/Gruppe für das Datenbankverzeichnis.." +echo "" >> ${logdir}/main.log +echo "chown -R ${MARIADB_USER}:$MARIADB_GROUP $MARIADB_DATA_DIR" >> ${logdir}/main.log +chown -R ${MARIADB_USER}:$MARIADB_GROUP $MARIADB_DATA_DIR >> ${logdir}/main.log 2>&1 +if [ "$?" = "0" ]; then + echo_ok +else + echo_failed + error Konnte Besitzer/Gruppe für das Datenbankverzeichnis $MARIADB_DATA_DIR nicht setzen.. +fi + + +if ! $UPDATE_MARIADB ; then + + echononl "Starte MySQL Server beim Booten" + echo "" >> ${logdir}/main.log + if $SYSTEMD_EXISTS ; then + echo "systemctl enable mysql.server" >> ${logdir}/main.log + systemctl enable mysql.server >> ${logdir}/main.log 2>&1 + echo "systemctl daemon-reload" >> ${logdir}/main.log + systemctl daemon-reload >> ${logdir}/main.log 2>&1 + else + echo "update-rc.d mysql.server defaults" >> ${logdir}/main.log + update-rc.d mysql.server defaults >> ${logdir}/main.log 2>&1 + fi + if [ "$?" = "0" ]; then + echo_ok + else + echo_failed + if $SYSTEMD_EXISTS ; then + error "Konnte \"mysql.server\" im systemd nicht enablen.." + else + error "Konnte MySQL Init Script Links (autom. boot) nicht erstellen.." + fi + fi + + echononl "Starte MySQL Datenbankserver.." + echo "" >> ${logdir}/main.log + if $SYSTEMD_EXISTS ; then + echo "systemctl start mysql.server" >> ${logdir}/main.log + systemctl start mysql.server >> ${logdir}/main.log 2>&1 + else + echo "/etc/init.d/mysql.server start" >> ${logdir}/main.log + /etc/init.d/mysql.server start >> ${logdir}/main.log 2>&1 + fi + if [ "$?" = "0" ]; then + echo_ok + else + echo_failed + error Konnte MySQL Datenbankserver nicht starten.. + fi +fi + +sleep 5 +echononl "Run \"mysql_upgrade -uroot\".." +echo "" >> ${logdir}/main.log +echo "${MARIADB_INSTALL_DIR}/bin/mysql_upgrade -uroot" >> ${logdir}/main.log +${MARIADB_INSTALL_DIR}/bin/mysql_upgrade -uroot >> ${logdir}/main.log 2>&1 +if [ "$?" = "0" ]; then + echo_ok +else + echo_failed + error "Script \"mysql_upgrade -uroot\" failed!" +fi + +echononl "Delete empty User in table mysql.user.." +echo "" >> ${logdir}/main.log +echo "${MARIADB_INSTALL_DIR}/bin/mysql -uroot mysql -N -s -e \"DELETE FROM user where User = ''\"" >> ${logdir}/main.log +${MARIADB_INSTALL_DIR}/bin/mysql -uroot mysql -N -s -e "DELETE FROM user where User = ''" >> ${logdir}/main.log 2>&1 +if [ "$?" = "0" ]; then + echo_ok +else + echo_failed + error "Deleting empty User in table mysql.user failed!" +fi + +echononl "Delete database \"test\".." +echo "" >> ${logdir}/main.log +echo "${MARIADB_INSTALL_DIR}/bin/mysql -uroot mysql -N -s -e \"DROP DATABASE test\"" >> ${logdir}/main.log +${MARIADB_INSTALL_DIR}/bin/mysql -uroot mysql -N -s -e "DROP DATABASE test" >> ${logdir}/main.log 2>&1 +if [ "$?" = "0" ]; then + echo_ok +else + echo_failed + error "Dropping Database \"test\" failed!" +fi + +echononl "Delete entries for test database in table mysql.db" +echo "" >> ${logdir}/main.log +echo "${MARIADB_INSTALL_DIR}/bin/mysql -uroot mysql -N -s -e \"DELETE FROM db where Db LIKE 'test%'\"" >> ${logdir}/main.log +${MARIADB_INSTALL_DIR}/bin/mysql -uroot mysql -N -s -e "DELETE FROM db where Db LIKE 'test%'" >> ${logdir}/main.log 2>&1 +if [ "$?" = "0" ]; then + echo_ok +else + echo_failed + error "Deleting empty User in table mysql.user failed!" +fi + +#echononl "Setze root Passwort (authentication_string) für den MySQL Zugang" +#echo "" >> ${logdir}/main.log +#echo "${MARIADB_INSTALL_DIR}/bin/mysql -uroot mysql -N -s -e \"UPDATE user set authentication_string = password('$MARIADB_ROOT_PW')\"" >> ${logdir}/main.log +#${MARIADB_INSTALL_DIR}/bin/mysql -uroot mysql -N -s -e "UPDATE user set authentication_string = password('$MARIADB_ROOT_PW')" \ +# >> ${logdir}/main.log 2>&1 +#if [ "$?" = "0" ]; then +# echo_ok +#else +# echo_failed +# error Konnte MySQL root Zugang fü den MySQL Server nicht setzen.. +#fi + +echononl "Setze root Passwort (password) für den MySQL Zugang" +echo "" >> ${logdir}/main.log +echo "${MARIADB_INSTALL_DIR}/bin/mysql -uroot mysql -N -s -e \"UPDATE user set Password = password('$MARIADB_ROOT_PW')\"" >> ${logdir}/main.log +${MARIADB_INSTALL_DIR}/bin/mysql -uroot mysql -N -s -e "UPDATE user set Password = password('$MARIADB_ROOT_PW')" \ + >> ${logdir}/main.log 2>&1 +if [ "$?" = "0" ]; then + echo_ok +else + echo_failed + error Konnte MySQL root Zugang fü den MySQL Server nicht setzen.. +fi + +echononl "Neu Einlesen der Berechtigung (MySQL Server).." +echo "" >> ${logdir}/main.log +echo "${MARIADB_INSTALL_DIR}/bin/mysql -uroot mysql -N -s -e \"FLUSH PRIVILEGES\"" >> ${logdir}/main.log +${MARIADB_INSTALL_DIR}/bin/mysql -uroot mysql -N -s -e "FLUSH PRIVILEGES" >> ${logdir}/main.log 2>&1 +if [ "$?" = "0" ]; then + echo_ok +else + echo_failed + error Das Laden/Erneuern der Berechtigungen für die MySQL Datenbank ist fehlgeschlagen.. +fi + + +echo +echononl "Erstelle Passwort für maintance (MySQL) User.." +echo "" >> ${logdir}/main.log +PW_GEN=`which pwgen` +if [ -z "$PW_GEN" ]; then + echo "_maint_passwd=\`cat /dev/urandom|tr -dc \"a-zA-Z0-9-_\$\?\" | fold -w16 | head -n 1\`" >> ${logdir}/main.log + _maint_passwd=`cat /dev/urandom|tr -dc "a-zA-Z0-9-_\$\?" | fold -w16 | head -n 1` >> ${logdir}/main.log 2>&1 +else + echo "_maint_passwd=\`$PW_GEN -v -B 16 1\`" >> ${logdir}/main.log + _maint_passwd=`$PW_GEN -v -B 16 1` >> ${logdir}/main.log 2>&1 +fi +if [ "$?" = "0" ]; then + echo_ok +else + echo_failed + error Konnte Passwort für maintance \(MySQL\) User nicht erstellen.. +fi + +_maint_user=sys-maint +echononl "Erstelle maintance MySQL User \"${_maint_user}\" - localhost.." +echo "" >> ${logdir}/main.log +echo "${MARIADB_INSTALL_DIR}/bin/mysql -uroot -p$MARIADB_ROOT_PW mysql -N -s -e \"GRANT ALL ON *.* TO '${_maint_user}'@'localhost' IDENTIFIED BY '$_maint_passwd'\"" >> ${logdir}/main.log +${MARIADB_INSTALL_DIR}/bin/mysql -uroot -p$MARIADB_ROOT_PW mysql -N -s -e "GRANT ALL ON *.* TO '${_maint_user}'@'localhost' IDENTIFIED BY '$_maint_passwd'" >> ${logdir}/main.log 2>&1 +if [ "$?" = "0" ]; then + echo_ok +else + echo_failed + error Konnte \(MySQL\) User \"${_maint_user}\" nicht erstellen.. +fi + +echononl "Give \"Grant\" permission to MySQL User \"${_maint_user}\".." +echo "" >> ${logdir}/main.log +echo "${MARIADB_INSTALL_DIR}/bin/mysql -uroot -p$MARIADB_ROOT_PW mysql -N -s -e \"UPDATE user SET Grant_priv = 'y' WHERE user = '${_maint_user}';\"" >> ${logdir}/main.log +${MARIADB_INSTALL_DIR}/bin/mysql -uroot -p$MARIADB_ROOT_PW mysql -N -s -e "UPDATE user SET Grant_priv = 'y' WHERE user = '${_maint_user}';" >> ${logdir}/main.log 2>&1 +if [ "$?" = "0" ]; then + echo_ok +else + echo_failed + error Giving \"Grant\"-permission to \(MySQL\) User \"${_maint_user}\" failed +fi + +echononl "Neu Einlesen der Berechtigung (MySQL Server).." +echo "" >> ${logdir}/main.log +echo "${MARIADB_INSTALL_DIR}/bin/mysql -uroot -p$MARIADB_ROOT_PW mysql -N -s -e \"FLUSH PRIVILEGES\"" >> ${logdir}/main.log +${MARIADB_INSTALL_DIR}/bin/mysql -uroot -p$MARIADB_ROOT_PW mysql -N -s -e "FLUSH PRIVILEGES" >> ${logdir}/main.log 2>&1 +if [ "$?" = "0" ]; then + echo_ok +else + echo_failed + error Das Laden/Erneuern der Berechtigungen für die MySQL Datenbank ist fehlgeschlagen.. +fi + + +_maint_conf_file=${MARIADB_INSTALL_DIR}/sys-maint.cnf +echononl "Erstelle ${_maint_conf_file}.." +cat << EOF > ${MARIADB_INSTALL_DIR}/sys-maint.cnf +[client] +host = localhost +user = $_maint_user +password = $_maint_passwd +socket = $MARIADB_UNIX_SOCKET +[mysql_upgrade] +host = localhost +user = $_maint_user +password = $_maint_passwd +socket = $MARIADB_UNIX_SOCKET +basedir = /usr +EOF +if [ "$?" = "0" ]; then + echo_ok +else + echo_failed + error Konnte Konfigurationsdatei \"${MARIADB_INSTALL_DIR}/sys-maint.cnf\" nicht erstellen.. +fi + + +echononl "Erstelle Logrotate Definitionsdatei /etc/logrotate.d/mysql.." +cat << EOF > /etc/logrotate.d/mysql +$_mariadb_log +$_mariadb_error_log +$_mariadb_slow_query_log +{ + daily + rotate 7 + missingok + create 644 $MARIADB_USER $MARIADB_GROUP + compress + sharedscripts + postrotate + MYSQL="`dirname $MARIADB_INSTALL_DIR`/mysql/bin/mysql --defaults-file=$_maint_conf_file" + MYADMIN="`dirname $MARIADB_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 + error Konnte Logrotate Definitionsdatei \"/etc/logrotate.d/mysql\" nicht erstellen.. +fi + + +echo +exit diff --git a/stopwords_utf8_iso8859-15.txt b/stopwords_utf8_iso8859-15.txt new file mode 100644 index 0000000..a8ad28d --- /dev/null +++ b/stopwords_utf8_iso8859-15.txt @@ -0,0 +1,1159 @@ +ä +a +ä +ab +aber +abgerufen +abgerufene +abgerufener +abgerufenes +acht +ähnlich +alle +allein +allem +allen +aller +allerdings +allerlei +alles +allgemein +allmählich +allmählich +allzu +als +alsbald +also +am +an +ander +andere +anderem +anderen +anderer +andererseits +anderes +anderm +andern +andernfalls +anders +anerkannt +anerkannte +anerkannter +anerkanntes +anfangen +anfing +angefangen +angesetze +angesetzt +angesetzten +angesetzter +ansetzen +anstatt +arbeiten +auch +außen +außer +außerdem +außerhalb +auf +aufgehört +aufgehört +aufgrund +aufhören +aufhörte +aufhören +aufhörte +aufzusuchen +aus +ausdrücken +ausdrückt +ausdrückte +ausdrücken +ausdrückt +ausdrückte +ausgenommen +außen +ausser +außer +ausserdem +außerdem +außerhalb +author +autor +b +bald +böden +bearbeite +bearbeiten +bearbeitete +bearbeiteten +bedarf +bedürfen +bedürfen +bedurfte +befragen +befragte +befragten +befragter +begann +beginnen +begonnen +behalten +behielt +bei +beide +beiden +beiderlei +beides +beim +beinahe +beitragen +beitrugen +bekannt +bekannte +bekannter +bekennen +übel +benutzt +über +überall +überallhin +überdies +bereits +berichten +berichtet +berichtete +berichteten +übermorgen +besonders +besser +bestehen +besteht +beträchtlich +beträchtlich +bevor +bezüglich +bezüglich +bietet +bin +bis +bisher +bislang +bist +bleiben +blieb +bloß +bloss +bloß +böden +brachte +brachten +brauchen +braucht +bräuchte +übrig +übrigens +bringen +bräuchte +bsp. +bzw +c +ca +d +da +daß +dabei +dadurch +dafür +dafür +dagegen +daher +dahin +damals +damit +danach +daneben +dank +danke +danken +dann +dannen +daran +darauf +daraus +darüber +darüberhinaus +darf +darfst +darin +darüber +darüberhinaus +darum +darunter +das +dass +daß +dasselbe +davon +davor +dazu +dein +deine +deinem +deinen +deiner +deines +dem +demnach +demselben +den +denen +denn +dennoch +denselben +der +derart +derartig +derem +deren +derer +derjenige +derjenigen +derselbe +derselben +derzeit +des +deshalb +desselben +dessen +desto +deswegen +dich +die +diejenige +dies +diese +dieselbe +dieselben +diesem +diesen +dieser +dieses +diesseits +dinge +dir +direkt +direkte +direkten +direkter +doch +doppelt +dort +dorther +dorthin +drauf +drüber +drei +dreißig +dreißig +dürfen +dürfte +drin +dritte +drüber +drunter +du +dunklen +durch +durchaus +dürfen +durfte +dürfte +durften +e +eben +ebenfalls +ebenso +ehe +eher +eigenen +eigenes +eigentlich +ein +einbaün +einbaün +eine +einem +einen +einer +einerseits +eines +einfach +einführen +einführte +einführten +einführen +einführte +einführten +eingesetzt +einig +einige +einigem +einigen +einiger +einigermaßen +einigermaßen +einiges +einmal +eins +einseitig +einseitige +einseitigen +einseitiger +einst +einstmals +einzig +ende +entsprechend +entweder +er +eröffne +eröffnen +eröffnet +eröffnete +eröffnetes +ergänze +ergänzen +ergänzte +ergänzten +ergänze +ergänzen +ergänzte +ergänzten +erhält +erhalten +erhielt +erhielten +erhält +erneut +eröffne +eröffnen +eröffnet +eröffnete +eröffnetes +erst +erste +ersten +erster +es +etc +etliche +etwa +etwas +euch +euer +eure +eurem +euren +eurer +eures +f +fall +falls +fand +fast +ferner +finden +findest +findet +fünf +folgende +folgenden +folgender +folgendes +folglich +fordern +fordert +forderte +forderten +fortsetzen +fortsetzt +fortsetzte +fortsetzten +für +fragte +frau +frei +freie +freier +freies +fuer +fünf +für +g +gab +gängig +gängige +gängigen +gängiger +gängiges +ganz +ganze +ganzem +ganzen +ganzer +ganzes +gänzlich +gar +gbr +geb +geben +geblieben +gebracht +gedurft +geehrt +geehrte +geehrten +geehrter +gefallen +gefälligst +gefällt +gefiel +gefälligst +gefällt +gegeben +gegen +gehabt +gehen +geht +gekommen +gekonnt +gemacht +gemäss +gemocht +gemäss +genommen +genug +gern +gesagt +gesehen +gestern +gestrige +getan +geteilt +geteilte +getragen +gewesen +gewissermaßen +gewissermaßen +gewollt +geworden +ggf +gib +gibt +glücklicherweise +gleich +gleichwohl +gleichzeitig +glücklicherweise +gmbh +gängig +gängige +gängigen +gängiger +gängiges +gänzlich +gratulieren +gratuliert +gratulierte +gute +guten +h +hab +habe +haben +haette +halb +hallo +hast +hat +hätt +hatte +hätte +hatten +hätten +hattest +hattet +höchstens +heraus +herein +heute +heutige +hier +hiermit +hiesige +hin +hinein +hinten +hinter +hinterher +ähnlich +hoch +höchstens +hätt +hätte +hätten +hundert +i +ich +igitt +ihm +ihn +ihnen +ihr +ihre +ihrem +ihren +ihrer +ihres +im +immer +immerhin +important +in +indem +indessen +info +infolge +innen +innerhalb +ins +insofern +inzwischen +irgend +irgendeine +irgendwas +irgendwen +irgendwer +irgendwie +irgendwo +ist +j +ja +jährig +jährige +jährigen +jähriges +je +jede +jedem +jeden +jedenfalls +jeder +jederlei +jedes +jedoch +jemand +jene +jenem +jenen +jener +jenes +jenseits +jetzt +jährig +jährige +jährigen +jähriges +k +kam +kann +kannst +kaum +kein +keine +keinem +keinen +keiner +keinerlei +keines +keineswegs +klar +klare +klaren +klares +klein +kleinen +kleiner +kleines +künftig +könn +können +könnt +könnte +könnten +koennen +koennt +koennte +koennten +komme +kommen +kommt +konkret +konkrete +konkreten +konkreter +konkretes +könn +können +könnt +konnte +könnte +konnten +könnten +künftig +l +lag +lagen +langsam +längst +längstens +lassen +laut +lediglich +leer +legen +legte +legten +leicht +leider +lesen +letze +letzten +letztendlich +letztens +letztes +letztlich +lichten +liegt +liest +links +längst +längstens +m +mache +machen +machst +macht +machte +machten +mag +magst +mal +man +manche +manchem +manchen +mancher +mancherorts +manches +manchmal +mann +margin +möchte +möchten +möchtest +mehr +mehrere +mein +meine +meinem +meinen +meiner +meines +meist +meiste +meisten +meta +mögen +möglich +mögliche +möglichen +möglicher +möglicherweise +mich +mindestens +mir +mit +mithin +mochte +möchte +möchten +möchtest +mögen +möglich +mögliche +möglichen +möglicher +möglicherweise +morgen +morgige +müssen +müsste +müssten +müßt +müßte +muß +muessen +muesst +muesste +muss +muß +müssen +musst +mußt +müßt +musste +müsste +müßte +mussten +müssten +mußt +n +nach +nachdem +nacher +nachhinein +nächste +nacht +nahm +nämlich +natürlich +natürlich +nächste +neben +nebenan +nehmen +nein +neu +neue +neuem +neuen +neuer +neues +neun +nicht +nichts +nie +niemals +niemand +nimm +nimmer +nimmt +nirgends +nirgendwo +nämlich +noch +nötigenfalls +nötigenfalls +nützt +nun +nur +nutzen +nutzt +nützt +nutzung +o +ö +ob +oben +oberhalb +obgleich +obschon +obwohl +oder +oft +ohne +p +per +pfui +plötzlich +plötzlich +pro +q +reagiere +reagieren +reagiert +reagierte +rechts +regelmäßig +regelmäßig +rief +rund +s +sage +sagen +sagt +sagte +sagten +sagtest +sämtliche +sang +sangen +schätzen +schätzt +schätzte +schätzten +schlechter +schließlich +schließlich +schnell +schon +schreibe +schreiben +schreibens +schreiber +schätzen +schätzt +schätzte +schätzten +schwierig +sechs +sect +sehe +sehen +sehr +sehrwohl +seht +sei +seid +sein +seine +seinem +seinen +seiner +seines +seit +seitdem +seite +seiten +seither +selber +selbst +senke +senken +senkt +senkte +senkten +setzen +setzt +setzte +setzten +sich +sicher +sicherlich +sie +sieben +siebte +siehe +sieht +sind +singen +singt +sämtliche +so +sobald +sodaß +sodaß +soeben +sofern +sofort +sog +sogar +solange +solch +solche +solchem +solchen +solcher +solches +soll +sollen +sollst +sollt +sollte +sollten +solltest +somit +sondern +sonst +sonstwo +sooft +soviel +soweit +sowie +sowohl +später +spielen +später +startet +startete +starteten +statt +stattdessen +steht +steige +steigen +steigt +stets +stieg +stiegen +such +suchen +t +tages +tat +tät +tatsächlich +tatsächlichen +tatsächlicher +tatsächliches +tatsächlich +tatsächlichen +tatsächlicher +tatsächliches +tausend +teile +teilen +teilte +teilten +titel +total +trage +tragen +trägt +trägt +trotzdem +trug +tät +tun +tust +tut +txt +u +ü +übel +über +überall +überallhin +überdies +übermorgen +übrig +übrigens +ueber +um +umso +unbedingt +und +ungefähr +ungefähr +unmöglich +unmögliche +unmöglichen +unmöglicher +unmöglich +unmögliche +unmöglichen +unmöglicher +unnötig +unnötig +uns +unse +unsem +unsen +unser +unsere +unserem +unseren +unserer +unseres +unserm +unses +unten +unter +unterbrach +unterbrechen +unterhalb +unwichtig +usw +v +veröffentlichen +veröffentlicher +veröffentlicht +veröffentlichte +veröffentlichten +veröffentlichtes +vergangen +vergangene +vergangener +vergangenes +vermag +vermögen +vermögen +vermutlich +veröffentlichen +veröffentlicher +veröffentlicht +veröffentlichte +veröffentlichten +veröffentlichtes +verrate +verraten +verriet +verrieten +version +versorge +versorgen +versorgt +versorgte +versorgten +versorgtes +viel +viele +vielen +vieler +vieles +vielleicht +vielmals +vier +völlig +völlig +vollständig +vollständig +vom +von +vor +voran +vorbei +vorüber +vorgestern +vorher +vorne +vorüber +w +wachen +waere +während +währenddessen +wann +war +wär +wäre +waren +wären +warst +warum +was +weder +weg +wegen +weiß +weil +weiß +weiter +weitere +weiterem +weiteren +weiterer +weiteres +weiterhin +welche +welchem +welchen +welcher +welches +wem +wen +wenig +wenige +weniger +wenigstens +wenn +wenngleich +wer +werde +werden +werdet +weshalb +wessen +während +währenddessen +wichtig +wie +wieder +wieso +wieviel +wiewohl +will +willst +wir +wird +wirklich +wirst +wo +wodurch +wogegen +woher +wohin +wohingegen +wohl +wohlweislich +wolle +wollen +wollt +wollte +wollten +wolltest +wolltet +womit +woraufhin +woraus +worin +wär +würden +wäre +wären +wurde +wurden +würden +x +y +z +zahlreich +z.B. +zehn +zeitweise +ziehen +zieht +zog +zogen +zu +zudem +zuerst +zufolge +zugleich +zuletzt +zum +zumal +zur +zurück +zurück +zusammen +zuviel +zwanzig +zwar +zwei +zwischen +zwölf +zwölf