#!/bin/bash
### MODUL-NR. 011 ###
# (c) August 2008 Stefan Schäfer / FSP Computer & Netzwerke
# (c) 2009-2026 Stefan Schäfer / invis-server.org / stefan@invis-server.org
# (c) 2013,2014 Dimitri Asarowski / invis-server.org / dimitri@invis-server.org
# (c) 2013-2017 Ingo Göppert / invis-server.org / ingo@invis-server.org

# License: GPLv3
# Questions: info@invis-server.org

# Grundkonfiguration und start des MariaDB Dienstes

# Insert short description of this module here

# Dieses Programm ist freie Software. Sie können es unter den Bedingungen der 
# GNU General Public License, wie von der Free Software Foundation veröffentlicht,
# weitergeben und/oder modifizieren, entweder gemäß Version 3 der Lizenz oder
# (nach Ihrer Option) jeder späteren Version.

# Die Veröffentlichung dieses Programms erfolgt in der Hoffnung, daß es Ihnen
# von Nutzen sein wird, aber OHNE IRGENDEINE GARANTIE, sogar ohne die implizite 
# Garantie der MARKTREIFE oder der VERWENDBARKEIT FÜR EINEN BESTIMMTEN ZWECK. 
# Details finden Sie in der GNU General Public License.

# Sie sollten ein Exemplar der GNU General Public License zusammen mit diesem 
# Programm erhalten haben. Falls nicht, siehe <http://www.gnu.org/licenses/>. 

# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.

# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.

# You should have received a copy of the GNU General Public License
# along with this program.  If not, see <http://www.gnu.org/licenses/>.

# include functions
source $SINEINCLUDEDIR/functions

modulename=`basename $0`

clear
windowtitle="MariaDB Server"
pgsubtitle="Preparing MariaDB Server, this take a little time..."

waitinfobox "Für MariaDB werden Einstellungen zur Speichernutzung getroffen
die sich am verfügbaren RAM des Servers orientieren. 
Bei weniger als 2GB RAM werden ca. 20%, bei 2-4GB
RAM ca. 25% und bei mehr als 4GB RAM ca 33% des RAMs reserviert.
Beachten Sie dies beispielsweise bei der Einrichtung virtueller Maschinen." "Speicherreservierung für MariaDB"

# MySQL Config schreiben, Speichereinstellungen anpassen
# und in Runlevel integrieren und starten.
cp $TEMPLATEDIR/$modulename/my.cnf /etc/
memsizes=($(kmemcalc))
path="/etc/"
file="my.cnf"
string="innodbbps%${memsizes[0]}M"
changevalues $path $file "$string"

string="innodblfs%${memsizes[1]}M"
changevalues $path $file "$string"

chkservice "mariadb"

# Der besch. systemd wartet einfach nicht lange genug auf den MySQL Socket
until [[ -S /var/run/mysql/mysql.sock ]]; do
    echo "Warte, bis der MySQL-Socket erscheint. ;-)" | pgbox
    sleep 2 | pgbox
done

# Restart, weil systemd ggf. glaubt, dass mysql nicht laeuft.
systemctl restart mariadb.service 2>&1|tee -a $LOGFILE |pgbox

#MySQL Root-Passwort setzen
mysqlpw=`getpassword "MySQLPW" "3"`
mariadb-admin password $mysqlpw

# Neuaufbau der Postfix chroot Umgebung zur Unsterstützung von mysql.sock 
chkservice "postfix"

waitinfobox "Es wird empfohlen nach der invis-Server Installation das Syript \"mariadb-secure-installation\" auszuführen.
Sie benötigen dafür das MyriaDB-root-Passwort, zu finden mit \"sine2 showpws\"." "Empfehlung zu MariaDB"

