Dies ist eine alte Version des Dokuments!
MySQLDumper unter CentOS 7.x installieren und einrichten
Zum komfortablen Sichern und ggf. Wiederherstellen einzelner Tabellen und/oder Datenbanken unseres MariaDB-Datenbankservers greifen wir auf das Projekt MySQLDumper zurück.
Eine genaue Funktionsbeschreibung von MySQLDumper findet man auf der zugehörigen Projektseite.
Installation
PHP-Voraussetzungen
Für unseren komfortablen Weg der Sicherung unseres MariaDB-Servers muß natürlich ein funktionstüchtiger MariaDB-Server unter CentOS 7.x und entweder ein passender Apache-Webserver oder der Webserver NGiNX zur Verfügung stehen. Es werden werden von mysqldumper folgende Pakete benötigt:
- php
- perl-CGI
- perl-Email-Date-Format
- perl-Net-SMTP-SSL
- perl-Net-HTTPTunnel
- perl-Net-Daemon
- perl-PlRPC
- perl-DBI
- perl-MIME-Types
- perl-MIME-Lite
- perl-DBD-MySQL
- perl-Net-FTPSSL
- perl-MailTools
Zur einfachen Installation via YUM greifen wir auf die folgenden Repositories zurück:
- CentOS-Base
Die oben genannten Pakete installieren wir, sofern diese nicht schon bei der Grundinstallation unseres Apache-Webservers erfolgte, mit Hilfe von YUM
# yum install php perl-CGI perl-Email-Date-Format perl-Net-SMTP-SSL perl-Net-HTTPTunnel perl-Net-Daemon \ perl-PlRPC perl-DBI perl-MIME-Types perl-MIME-Lite perl-DBD-MySQL perl-Net-FTPSSL perl-MailTools -y
Anschließend starten wir bei Bedarf unseren Webserver einmal durch.
# systemctl reload httpd
bzw. im Falle von NGiNX:
# systemctl reload nginx
mysqldumper
Da es für mysqldumper kein RPM für CentOS 7 gibt, installieren wir die Software eben aus den Quellen selbst. Dazu holen wir uns das ZIP-Archiv von der SoureForge-Projektseite.
# wget -P /usr/local/src/packages/ \ http://downloads.sourceforge.net/project/mysqldumper/MySQLDumper/MySQLDumper1.24.4.zip
Anschließend entpacken wir das Archiv in unser WebRoot-Verzeichnis unseres Webservers.
# unzip -d /srv/www/html/ /usr/local/src/packages/MySQLDumper1.24.4.zip
Für die Backup-Dateien, die Konfigurations-, Backup- sowie für die Logdateien legen wir uns nun noch im entsprechenden Zielverzeichnis jeweils ein Verzeichnis an., Hierzu benutzen wir folgenden Befehl.
# mkdir -p /srv/www/html/msd1.24.4/work/{config,backup,log}
Zum Schluß setzen wir noch die Datei- und Verzeichnisse so, dass unser Webserver und die PHP-/Perl-Scripte dort auch die Daten ablegen kann.
# chmod -R 777 /srv/www/html/msd1.24.4/work # chmod -R 755 /srv/www/html/msd1.24.4/msd_cron
Nutzen wir einen Apache Webserver setzen wir den User und die Gruppe auf apache.apache.
# chown apache.apache /srv/www/html/msd1.24.4/config.php
Verwenden wir als Webserver NGiNX setzen wir den User und die Gruppe auf entsprechend auf nginx.nginx.
# chown nginx.nginx /srv/www/html/msd1.24.4/config.php
grundlegende Konfiguration
Apache vHOST
Im ersten Konfigurationsbeispiel richten wir uns einen vHOST für unseren Apache-Webserver ein; hierzu legen wir uns folgende Beispielkonfigurationsdatei an.
# vim /etc/httpd/conf.d/mysqldumper.conf
- /etc/httpd/conf.d/mysqldumper.conf
# # Web application to manage MariaDB backups # mysqldumper.nausch.org # <VirtualHost *:80> ServerAdmin webmaster@nausch.org ServerName mysqldumper.nausch.org ServerAlias www.mysqldumper.nausch.org ServerPath / DocumentRoot "/srv/www/html/msd1.24.4" <Directory "/srv/www/html/msd1.24.4"> Options -Indexes +FollowSymLinks +ExecCGI # Tachtler (enable for .htaccess file support) # AllowOverride AuthConfig AllowOverride None # Django: 2015-07-07 # Zugriff vom eigenen Netz aus erlauben Require ip 10.0.0 # Zugriff von überall erlauben #Require all granted </Directory> <File "/srv/www/html/msd1.24.4/config.php"> Options -Indexes -FollowSymLinks AllowOverride None # Django: 2015-07-07 # Zugriff von überall sperren Require all denied </File> AddHandler cgi-script .pl DirectoryIndex index.php ErrorLog logs/mysqldumper_error.log CustomLog logs/mysqldumper_access.log combined </VirtualHost>
Haben wir die Konfigurationsdatei vervollständigt, prüfen wir diese noch auf syntaktische Fehler.
# apachectl -t
Syntax OK
Ein reload unseres Apache Webserver reicht nun aus, um den neuen vHOST verfügbar zu haben.
# systemctl reload httpd
NGiNX vHOST
Haben wir als Webserver einen NGiNX unter der Motorhaube ist die Konfiguration unseres vHOST auch kein großes Hexenwerk.
# vim /etc/nginx/conf.d/mysqldumper.conf
- /etc/nginx/conf.d/mysqldumper.conf
server { # Django : 2015-05-28 # auf welchem Port soll der Server lauschen (HTTP: 80)? listen 80; # auf welchen Servernamen (vHOST) soll der Server reagieren? server_name mysqldumper.nausch.org; # Welches Access- und Error-Logfile soll beschrieben werden? access_log /var/log/nginx/mysqldumper_access.log; error_log /var/log/nginx/mysqldumper_errors.log; # Zugriffe erst nach erfolreicher Authentifizierung gestatten auth_basic "MSD on vml000097 - nausch.org"; auth_basic_user_file /etc/awstats/htpasswd; # Welcher Inhalt soll angezeigt bzw. auf welchen Server sollen die HTTP-Requests # weitergeleitet werden? root /srv/www/html/msd1.24.4/; index index.php; # php-Dateien dem PHP FastCGI Process Manager-Daemon php-fpm übergeben. location ~ \.php { fastcgi_split_path_info ^(.+\.php)(/.+)$; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } # perl-Dateien dem PHP FastCGI Process Manager-Daemon php-fpm übergeben. location ~ msd_cron/perltest.pl { fastcgi_split_path_info ^(.+\.pl)(/.+)$; fastcgi_index perltest.pl; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } # Zugriff auf die Konfigurationsdatei verbieten location ~ config.php { deny all; } }
Den Parameter fastcgi_pass setzen wir im übrigen auf den Wert aus der Konfigurationsdatei /etc/php-fpm.d/www.conf des PHP FastCGI Process Manager-Daemon php-fpm.
Haben wir die Konfigurationsdatei vervollständigt, prüfen wir diese noch auf syntaktische Fehler.
# nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful
Somit können wir unsere Konfiguration nun noch aktivieren.
# systemctl reload nginx
Anwendungskonfiguration
Die Konfiguration von MySQLDumper erfolgt über eine WEB-GUI, die über folgende URL erreichbar ist: http://mysqldumper.nausch.org. Diese URL rufen wir nun mit dem Webbrowser unserer Wahl auf.
$ firefox http://mysqldumper.nausch.org
Nach Aufruf der Seite, müssen wir als erstes auswählen welche Sprache verwendet werden soll.
Haben wir die Sprache ausgewählt klicken wir auf die Schaltfläche [ Installation ]. Auf der nächsten Seite definieren wir den Datenbankuser, der Zugriff auf alle Datenbanken und Tabellen hat.
Haben wir die benötigten Parameter eingegeben, klicken wir auf die Schaltfläche [ zu MySQL verbinden ]. In der unteren Bildschirmhälfte wird uns dann angezeigt welche Datenbanken gefunden wurden.
Da die Verbindung erfolgreich hergestellt werden konnte, können wir nun die Konfigurationsdatei schreiben. Hierzu klicken wir auf die Schaltfläche [ speichern und Installation fortsetzen ].
Wir befinden uns nun auf der Hauptseite von MySQLDumper. Da wir noch keinen Verzeichnisschutz angelegt haben, wird uns der Hinweis Dingend empfohlen und blendet die Schaltfläche [ Verzeichnisschutz erstellen ] . Wir klicken daher auf diese Schaltfläche.
Haben wir alle Daten wie gewünscht eingetragen klicken wir auf die Schaltfläche [ Verzeichnisschutz erstellen ] .
Die nun eingeblendete Frage, bestätigen wir durch einen Klick auf die Schaltfläche [ OK ]. Konnte der Webserver die benötigte Datei nicht selbst schreiben, da er z.B. keine Berechtigung zum Scheiben des WebRoot-Verzeichnisses hat, wird uns folgende Seite präsentiert.
Die angezeigten Daten kopieren wir uns nun und speichern die beiden Dateien im Verzeichnis /srv/www/html/msd1.24.4/.
# vim /srv/www/html/msd1.24.4/.htaccess
- /srv/www/html/msd1.24.4/.htaccess
<IfModule mod_rewrite.c> RewriteEngine off </IfModule> AuthName "MySQLDumper" AuthType Basic AuthUserFile "/srv/www/html/msd1.24.4/.htpasswd" require valid-user
# vim /srv/www/html/msd1.24.4/.htpasswd
- /srv/www/html/msd1.24.4/.htpasswd
admindb:{SHA}llv64xop1TodKTSFZqHb1vbAo1ogh8=
Nun klicken wir im Webfrontend auf die Schaltfläche [ Home ].
Der Paypal-Spendebutton auf der linken Seite beisst keineswegs! ;) Wer schon mal per Hand versucht hat sehr große Datenbankbackups zurück zu sichern, kann ein Lied davon singen, wie aufwändig dies sein kann. Also nicht zaudern, sondern direkt an den Programmauthor Daniel Schichtholz ein paar € spenden!