Der MySQL Datenbank Server Allgemeines MySQL ist ein vollwertiges Datenbankmanagementsystem, das sich als Standarddatenbank im Zusammenspiel mit Webanwendungen etabliert hat. In Kombination mit dem Webserver Apache und der Scriptsprache PHP spielt es in den unterschiedlichsten Anwendungsszenarien seine Staerken aus. Nahezu alle Script- und Programmiersprachen unterstuetzen MariaDB. Installation Das Installationsscript erkennt automatisch, ob bereits ein MySQL Server installiert ist. Vorhandene Datenbanken werden so komplett uebernommen. Sollte fuer den MySQL User 'root' noch kein Kennwort vergeben sein, so erfragt das Installationsscript die Eingabe eines solchen. Sollte 'root' bereits durch ein Kennwort geschuetzt sein, so wird es an dieser Stelle abgefragt. Allgemeine Konfiguration Die Konfiguration kann ueber den Menuepunkt 'Edit Configuration' geaendert werden. Nach Beendigung des Editors wird die Konfiguration automatisch auf Fehler ueberprueft. Werden Fehler festgestellt, so sollten die entsprechenden Eintraege in jedem Fall korrigiert werden. Achtung, Uebername der Konfiguration startet den MariaDB Daemon neu und unterbricht dabei alle laufenden Datenbankzugriffe. Das Menue im Setup-Programm Das Menue im Setup-Programm ist wie folgt aufgebaut: 1. View documentation 2. Edit Configuration 3. Advanced configuration file handling 4. Start MySQL 5. Stop MySQL 6. Show status and connects 7. MySQL security check 8. MySQl Tools 1. List MySQL user 2. Add MySQL user 3. Remove MySQL user 4. Change MySQL user password 5. Database backup 6. Database restore 7. Database check 8. SQL Console 9. Logfile view 0. Exit 0. Exit Die Konfigurationsdatei In der Konfigurationsdatei, die ueber das Menue zugaenglich ist, sind folgende Parameter vorhanden; wer sie von Hand editieren will, findet sie unter /etc/config.d/mysql. Die Parameter Allgemeine Einstellungen START_MYSQL Legt fest, ob der MySQL Server automatisch gestartet wird. Gueltige Werte: yes, no Standardeinstellung: START_MYSQL='no' MYSQL_NETWORK Erlaubt das Warten auf eingehende TCP/IP Verbindungen (listen). Aus Sicherheitsgruenden sollte hier nach Moeglichkeit 'no' stehen, so das alle Verbindungen zu MariaDB nur ueber die internen Unix-Sockets erfolgen. Gueltige Werte: yes, no Standardeinstellung: MYSQL_NETWORK='no' MYSQL_DATADIR Hier kann ein abweichender Datenbankpfad angegeben werden. Default ist /var/lib/mysql und muss nicht gesetzt werden. Gueltige Werte: leer oder ein Absoluter Pfad Standardeinstellung: MYSQL_DATADIR='' MYSQL_SEND_MAIL_FROM Hier muss die MailAdresse vom Admin eingeben werden, damit die Mails vom Server versendet werden koennen. Wenn das Feld leer bleibt, werden keine Mail versandt. Gueltige Werte: leer, E-MailAdresse Standardeinstellung: MYSQL_SEND_MAIL_FROM='' MYSQL_BACKUP_CRON_SCHEDULE Der Eintrag gibt den Startzeitpunkt und die Anzahl der Dateiueberpruefungen des [1]Auto-Backup1 System an. Die 5 Werte stehen fuer: Minute, Stunde, Tag, Monat, Wochentag. Die Voreinstellung - einmal taeglich 01:15 Uhr - hat sich in der Praxis als brauchbar erwiesen. Beispiel taeglich 01:15 Uhr: 15 1 * * * MYSQL_BACKUP_TARGET Hier wird das Zielverzeichnis fuer die Backupvorgaenge eingetragen. Auch alle vom Auto-Backup System erstellten Dateien werden dort abgelegt. Standardeinstellung: /var/lib/mysql_backup MYSQL_BACKUP_N Definiert die Anzahl der eingetragenen, mit Auto-Backup zu ueberwachenden, Datenbanken. Beispiel: 3 MYSQL_BACKUP_x_FILE Datenbankname der zu ueberwachenden Datenbank. Beispiel: mysql MYSQL_BACKUP_x_MAX Maximale Anzahl der gespeicherten Backups der Datenbank. Beim ueberschreiten des Wertes wird die jeweils aelteste Backupdatei geloescht. Wird dieser Wert auf '0' gesetzt, erfolgt kein Backupvorgang fuer diese Datenbank. Beispiel: 7 MYSQL_BACKUP_MOUNT Ermoeglicht das ausfuehren eines Kommandos vor dem Starten des Backup- oder Restorevorganges. Das kann z.B. das Mounten eines MO-Disk Datentraegers sein. Beispiel: mount /mo MYSQL_BACKUP_UMOUNT Ermoeglicht das Ausfuehren eines Kommandos nach Abschluss des Cron-Autobackups. So kann z.B. ein Umount Befehl fuer einen MO-Disk Datentraeger ausgefuehrt werden. Beispiel: umount /mo Spezielle Konfiguration Die folgenden Parameter sollten nur bei Bedarf veraendert werden. MYSQL_DEFAULT_COLLATION Hiermit wird der Standardzeichensatz und die Sortierung vorgegeben. Dabei sind in den 3 Zeichensatzgruppen folgende Sortierungen moeglich. latin1 (cp1252 West European) + latin1_bin + latin1_danish_ci + latin1_general_ci + latin1_general_cs + latin1_german1_ci (Woerterbuch Sortierung)) + latin1_german2_ci (Telefonbuch Sortierung)) + latin1_spanish_ci + latin1_swedish_ci utf8 (UTF-8 Unicode) + utf8_general_ci + utf8_bin + utf8_unicode_ci latin2 (ISO 8859-2 Central European) + latin2_bin + latin2_general_ci + latin2_hungarian_ci Standardeinstellung: latin1_german1_ci MYSQL_CONNECT_PORT Hier wird der Kommunikations-Port des Servers fuer TCP/IP basierte Kommunikation eingetragen. Clientsoftware erwartet hier, von Ausnahmen abgesehen, den Port 3306 des TCP Protokolles. Dieser Wert ist nur relevant wenn MYSQL_NETWORK='yes' gesetzt ist. Standardeinstellung: 3306 MYSQL_BIND_IP_ADDRESS Diese Option wird dann benoetigt, wenn mehrere Netzwerkkarten im Server verwendet werden und nicht von allen ein Zugriff auf den MariaDB Server erlaubt werden soll. Die IP-Adresse der fuer die Servernutzung freigegebenen Netzwerkkarte wird dann hier eingetragen. Dieser Wert ist nur relevant wenn MYSQL_NETWORK='yes' gesetzt ist. Beispiel: 127.0.0.1 MYSQL_MEMORY_OPT Hier wird das Serververhalten an den vorhandenen Arbeitsspeicher angepasst. 'small' entspricht dabei Computern mit wenig Arbeitsspeicher von unter 64MB 'medium' duerfte fuer die meisten Maschinen die richtige Wahl sein 'large' verwendet man fuer SQL Server mit 512 MB und mehr. Standardeinstellung: medium MYSQL_THREAD_STACK_SIZE Angaben zur Groesse des thread-stack Gueltige Werte: 128k, 256k, ... Standardeinstellung: MYSQL_THREAD_STACK_SIZE='128k' MYSQL_MAX_ALLOWED_PACKET Die Groesse der Kommunikationspakete (in MB) laesst sich mit diesem Wert einstellen. Standardeinstellung: 1 MYSQL_MAX_CONNECTIONS Maximale Anzahl gleichzeitiger Zugriffe auf den MariaDB Dienst. Standardeinstellung: 200 MYSQL_ACTIVATE_BINLOG Mit diesem Parameter wird das Binary Logfile eingeschaltet. Dieser Parameter kann ausgeschaltet bleiben, wenn keine Replikationen zwischen mehrern Datenbanken benoetigt werden. Beispiel: no MYSQL_MAX_BINLOG_SIZE Der Parameter erlaubt die Begrenzung der maximalen Groesse des Binaer- Logfiles. Die Angabe erfolgt in Byte. Standardeinstellung: 1024000 Die Menues des MySQL-Pakets Das MariaDB Hauptmenue Das MariaDB Hauptmenue ist ueber den Menuepunkt 'Service administration' im zentralen Setup-Programm zu erreichen. Es ist wie folgt aufgebaut: * View documentation Zeigt die Dokumentation an. * Edit Configuration Damit kann die Konfigurationsdatei des MariaDB-Paketes bearbeitet werden. * Advanced configuration file handling Ermoeglicht eine Versionsverwaltung der MariaDB-Konfigurationsdatei * Start MySQL Hier kann der MySQL Daemon gestartet werden. * Stop MySQL Hier wird der MySWL Daemon angehalten. Dabei werden alle laufenden Datenbankzugriffe ohne Warnung vom Server getrennt. Deshalb sollte man sich vorher unter dem Menuepunkt ''Show status and connects'' ueber gerade laufende Zugriffe informieren und eventuelle externe Benutzer warnen. * Show status and connects Zeigt den Status des MariaDB Daemon und alle aktuellen Zugriffe auf den MySQL Server an. * MariaDB security check Fuehrt folgende (einzeln waehlbare) Haertungsmassnahmen durch: - Entfernen der standardmaessig vorhandenen anonymous DB-User. - DB-Zugriff fuer den User root nur von localhost aus. - Entfernen der standardmaessig vorhandenen test Datenbank. Die Haertung des DB-Systems geschieht mithilfe eines offiziellen Skripts. * MySQL Tools Untermenue zu den weiteren Funktionen Die MySQL Tools Das MySQL Toolmenue ist wie folgt aufgebaut: * List MySQL user MariaDB verfuegt ueber eine eigene Datenbank Benutzerverwaltung. Diese wird in der Datenbank mysql im Datenverzeichnis des Servers gespeichert. Dieser Menuepunkt zeigt alle eingetragenen Benutzer und ihre Rechtegruppe an. (lesen, aendern, administrieren) * Add MySQL user Hiermit werden ein neuer Benutzer seine Zugriffsoptionen und sein Passwort an die Benutzerdatenbank angefuegt. Bei den Benutzerrechten wird lediglich zwischen den 3 Hauptkategorien administrieren, aendern oder nur lesen unterschieden. Der Parameter 'host' spezifiziert die Netzwerkuebergreifenden Zugriffsrechte. Das Zeichen '%' ist hierbei ein universeller Platzhalter fuer IP-Adressen und Domaenennamen. Standardwert ist hier 'localhost'. * Remove MySQL user Nicht mehr benoetigte Benutzereintraege lassen sich hiermit loeschen. * Change MySQL user password Hier kann das Passwort aller MariaDB Benutzer veraendert werden. * Database backup Ein Dateiauswahldialog listet alle Datenbanken auf. Durch die Auswahl einer Datenbank wird ein Backup unter gleichem Dateinamen mit dem Anhang des Tagesdatum, der aktuellen Stunde und der Dateiendung '.sql.xz' im Verzeichnis BACKUP_TARGET erstellt. Der Backup Vorgang kann im laufenden Betrieb erfolgen. Eine bereits existierende Backup- Datei mit gleichen Namen wird ohne Warnung ueberschrieben.. * Database restore Ein Dateiauswahldialog listet alle Backup Dateien '.sql.xz' des eingetragenen BACKUP_TARGET Verzeichnisses auf. Die Auswahl einer Datei startet den Ruecksicherungs-Vorgang. Die um Datum und Stunde erweiterten Dateinamen werden automatisch in den urspruenglichen Namen zurueckkonvertiert. Nicht mehr existierende Datenbanken werden komplett neu erstellt. * Database check Ueber diesen Menuepunkt wird die ausgewaehlte Datenbankdatei ueberprueft und gegebenenfalls Repariert und Optimiert. Die Auswahl der Datenbank erfolgt menuegestuetzt. * SQL Console Hier wird der Zugriff auf alle Datenbanken ueber ein SQL-Kommandozeilen -Tool ermoeglicht. Die Datenbankdateiauswahl erfolgt menuegestuetzt. Die Eingabe von ' \h' zeigt eine Hilfe an. Mit ' \q' wird die Console geschlossen. Auto-Backup Da MySQL ueber die Moeglichkeit verfuegt, im laufenden Datenbankbetrieb (ohne Anhalten des SQL-Servers) Backups zu erstellen, wurde eine Auto-Backup-Funktion integriert. Ein Cron Job fragt in vorgegebenen Abstaenden das Aenderungsdatum der unter MYSQL_BACKUP_x_FILE eingetragenen zu ueberwachenden SQL Datenbanken ab. Hat sich die Uhrzeit in einer der zur Datenbank gehoerenden Dateien seit dem letzten Backup geaendert, so wird eine Backup Datei erstellt. Der Backup-Dateiname wird um die Datums- und Stundeninformation der letzten Aenderung im Format: -JJJJMMTT-HH erweitert. So kann theoretisch bis zu einmal stuendlich ein Backup erstellt werden. Voreingestellt ist das Backup auf einmal taeglich 01:15 Uhr. Die Anzahl der gespeicherten Backups pro Datenbank kann mit dem Parameter MYSQL_BACKUP_x_MAX begrenzt werden. Beim ueberschreiten dieses Wertes wird die aelteste Backupdatei geloescht. Beispiel: mysql | |-> mysql-20030603-10.sql.xz |-> mysql-20040410-17.sql.xz |-> mysql-20040411-12.sql.xz Das durchfuehren von Auto-Backup-Operationen, wie Backup erstellen oder loeschen der aeltesten Backup Datei, wird im System-Logfile protokolliert. Pakete die default Werte von MySQL benoetigen, koennen die ueber die Datei /var/lib/mysql/defaults.info includieren. . /var/lib/mysql/defaults.info Enthalten sind folgende Variablen: \${mysql_basedir} \${mysql_datadir} \${mysql_pid_file} \${mysql_socket} \${mysql_log_error} \${mysql_port} __________________________________________________________________ Holger Bruenjes 2016-02-27