MariaDB 11.4 unter Windows einrichten
ℹ️Vorstufe zur Installationsanleitung
Die Installationsanleitung von beAV Pro setzt eine laufende Datenbank voraus (Systemanforderung: MySQL 8.0+ oder MariaDB 10.6+). Sie erklärt aber nicht, wie diese Datenbank auf den Rechner kommt. Genau das leistet dieses Dokument.
Ergebnis: MariaDB 11.4 LTS als Windows-Dienst mit automatischem Start, Sicherheitsupdates bis 2029, dazu die leere Datenbank beav_db und der Benutzer beav_user — der Stand, den die Installationsanleitung erwartet.
| Zeitbedarf | rund 30 Minuten |
|---|---|
| Erforderlich | Administratorrechte auf dem Rechner |
| Gilt für | Windows (Server und Arbeitsplatz) |
⚠️Läuft bereits eine Datenbank auf dem Rechner?
Etwa aus einem Software-Paket wie XAMPP, Laragon oder WAMP? Dann zuerst Anhang A abarbeiten — zwei Datenbanken können den Port 3306 nicht gleichzeitig nutzen.
✅Wo dieses Dokument endet
Nach Abschnitt 4 ist die Datenbank fertig. Sie wechseln dann zur Installationsanleitung. Abschnitt 5 beschreibt den Übergang im Detail.
1. Vorbereitung
1.1 Arbeitsspeicher ermitteln
Eingabeaufforderung öffnen: Windows-Taste drücken, cmd tippen, Enter.
powershell -Command "(Get-CimInstance Win32_ComputerSystem).TotalPhysicalMemory/1GB"
Die Ausgabe ist der Arbeitsspeicher in Gigabyte. Beispiel: 15,999 bedeutet 16 GB. Notieren Sie die gerundete Zahl.
1.2 Freien Plattenplatz prüfen
powershell -Command "Get-PSDrive C | Select-Object @{n='FreiGB';e={[math]::Round($_.Free/1GB,1)}}"
Mindestens 5 GB müssen frei sein, zuzüglich Platz für die Datenbank und deren Wachstum.
1.3 Wert für den Pufferpool bestimmen
Der Pufferpool ist die wichtigste Einstellung überhaupt. Er bestimmt, wie viel der Datenbank im Arbeitsspeicher gehalten wird. Zu klein macht die Anwendung langsam, zu groß bringt Windows in Speichernot.
Fall 1 — auf dem Rechner läuft außer der Datenbank auch der Webserver mit PHP (Normalfall bei beAV Pro)
| Arbeitsspeicher | Wert |
|---|---|
| 4 GB | 1G |
| 8 GB | 2G |
| 16 GB | 6G |
| 32 GB | 12G |
| 64 GB | 24G |
Fall 2 — der Rechner ist ein reiner Datenbankserver
| Arbeitsspeicher | Wert |
|---|---|
| 4 GB | 2G |
| 8 GB | 4G |
| 16 GB | 10G |
| 32 GB | 20G |
| 64 GB | 44G |
Zusätzliche Regel: Der Pufferpool muss nie größer sein als die Datenbank selbst. Bei einer 3 GB großen Datenbank bringen 12G keinen Vorteil gegenüber 4G.
Notieren Sie den Wert. Er wird in Abschnitt 3 eingetragen und ist die einzige Anpassung, die zwingend nötig ist.
1.4 Ordner für temporäre Dateien anlegen
mkdir C:\ProgramData\MariaDB\tmp
Dieser Ordner begrenzt später, wohin die Datenbank überhaupt Dateien schreiben darf.
1.5 Zugangsdaten festlegen
In diesem Dokument werden zwei Passwörter vergeben:
| Konto | Zweck | Wann gebraucht |
|---|---|---|
root | Verwaltung der Datenbank | Abschnitt 2.2, danach nur bei Wartung |
beav_user | Zugriff der Anwendung | Abschnitt 4.3 und im Web-Installer |
Beide jetzt festlegen und im Passwortmanager ablegen. Das Passwort von beav_user wird zweimal gebraucht: einmal beim Anlegen in der Datenbank und einmal im Web-Installer. Stimmen die beiden Eingaben nicht überein, verbindet sich die Anwendung nicht.
⚠️Das ist noch nicht alles
Die beAV-Installation verlangt später weitere Angaben — Lizenzschlüssel, Admin-Zugang, Dateispeicher. Die vollständige Liste steht in der Installations-Checkliste.
2. Herunterladen und installieren
1Download
Seite: https://mariadb.org/download/
| Feld | Wert |
|---|---|
| MariaDB Server Version | 11.4.x (höchste 11.4er Nummer) |
| Operating System | Windows |
| Architecture | x86_64 |
| Package Type | MSI Package |
Keine Preview- oder RC-Versionen wählen. Auch keine höhere Hauptversion: 11.4 ist eine Long-Term-Support-Ausgabe mit Pflege bis 2029, während die Zwischenversionen nach etwa einem Jahr aus dem Support fallen.
2Installation
MSI-Datei per Doppelklick starten.
| Dialog | Einstellung |
|---|---|
| Custom Setup | Standard belassen. HeidiSQL kann abgewählt werden |
| Installationspfad | C:\Program Files\MariaDB 11.4 |
| Root-Passwort | setzen und notieren, mindestens 20 Zeichen |
| „Use UTF8 as default server's character set" | anhaken |
| „Enable networking", Port | 3306 |
| „Install as service", Service Name | MariaDB belassen |
Das Root-Passwort gehört in einen Passwortmanager. Es wird nur bei Wartungsarbeiten gebraucht, muss also nie getippt werden.
3Prüfen
sc query MariaDB
Erwartet: STATE : 4 RUNNING
"C:\Program Files\MariaDB 11.4\bin\mysql.exe" -u root -p -h 127.0.0.1 -e "SELECT VERSION();"
Erwartet: eine 11.4er Versionsnummer.
3. Konfiguration einsetzen
Der Installer legt nur eine Minimaldatei mit fünf Zeilen an. Die folgende Konfiguration ersetzt sie vollständig.
🔴Editor als Administrator starten
Startmenü → notepad tippen → Rechtsklick auf „Editor" → Als Administrator ausführen. Ohne Administratorrechte schlägt das Speichern fehl.
Datei → Öffnen. Im Öffnen-Dialog unten rechts von „Textdokumente" auf „Alle Dateien" umstellen, dann diesen Pfad einfügen:
C:\Program Files\MariaDB 11.4\data\my.ini
⚠️Inhalt ersetzen, nicht anhängen
Den gesamten vorhandenen Inhalt löschen und durch den folgenden ersetzen. Wird der neue Text nur angehängt, stehen [mysqld] und [client] doppelt in der Datei — sie widerspricht sich dann selbst.
# =====================================================================
# MariaDB 11.4 fuer beAV Pro
#
# Pfade werden mit Schraegstrich geschrieben. Ein Backslash gilt in
# Optionsdateien als Escape-Zeichen und fuehrt zu Fehlern.
# =====================================================================
[mysqld]
# ---- Pfade ----
datadir=C:/Program Files/MariaDB 11.4/data
# ---- Netzwerk ----
port=3306
# Datenbank nur lokal erreichbar, nicht aus dem Netzwerk.
# Kostet KEINE Geschwindigkeit.
#
# NUR auskommentieren, wenn der Webserver mit beAV Pro auf einem
# ANDEREN Rechner laeuft als die Datenbank. Im Normalfall (beides auf
# demselben Rechner) bleibt die Zeile aktiv.
bind-address=127.0.0.1
# ---- Zeichensatz ----
character-set-server=utf8mb4
collation-server=utf8mb4_unicode_ci
# ---- Verbindungen und Puffer ----
max_connections=200
max_allowed_packet=64M
table_open_cache=4096
tmp_table_size=256M
max_heap_table_size=256M
sort_buffer_size=2M
read_buffer_size=2M
read_rnd_buffer_size=4M
net_buffer_length=8K
# ---- InnoDB ----
# >>> HIER DEN WERT AUS ABSCHNITT 1.3 EINTRAGEN <<<
#
# RAM mit Webserver reiner DB-Server
# ------------------------------------------
# 4 GB 1G 2G
# 8 GB 2G 4G
# 16 GB 6G 10G
# 32 GB 12G 20G
# 64 GB 24G 44G
#
innodb_buffer_pool_size=6G
innodb_log_file_size=256M
innodb_log_buffer_size=32M
innodb_flush_log_at_trx_commit=1
innodb_lock_wait_timeout=50
# ---- Sicherheit ----
local_infile=0
secure_file_priv="C:/ProgramData/MariaDB/tmp"
max_connect_errors=10
skip-show-database
# ---- SQL-Modus ----
# Diese Einstellung ist Vorgabe und darf NICHT veraendert werden.
# Insbesondere STRICT_TRANS_TABLES nicht ergaenzen - beAV Pro ist
# darauf nicht geprueft.
sql_mode=NO_ZERO_IN_DATE,NO_ZERO_DATE,NO_ENGINE_SUBSTITUTION
# ---- Protokollierung ----
log_warnings=2
[client]
port=3306
plugin-dir="C:/Program Files/MariaDB 11.4/lib/plugin"
default-character-set=utf8mb4
[mysql]
default-character-set=utf8mb4
[mysqldump]
max_allowed_packet=64M
Die Zeile innodb_buffer_pool_size auf den Wert aus Abschnitt 1.3 ändern. Dann speichern.
3.1 Dienst neu starten
Eingabeaufforderung als Administrator öffnen: Startmenü → cmd tippen → Rechtsklick → Als Administrator ausführen.
net stop MariaDB
net start MariaDB
Startet der Dienst nicht, siehe Abschnitt 7.
3.2 Prüfen
"C:\Program Files\MariaDB 11.4\bin\mysql.exe" -u root -p -h 127.0.0.1 -e "SHOW VARIABLES LIKE 'innodb_buffer_pool_size';"
Der Wert erscheint in Bytes:
| Eingetragen | Erwartete Ausgabe |
|---|---|
| 1G | 1073741824 |
| 2G | 2147483648 |
| 4G | 4294967296 |
| 6G | 6442450944 |
| 10G | 10737418240 |
| 12G | 12884901888 |
4. Datenbank und Benutzer anlegen
Dieser Abschnitt entspricht Schritt 3 „Datenbank vorbereiten" der Installationsanleitung. Wer ihn hier abarbeitet, überspringt ihn dort.
4.1 Anmelden
"C:\Program Files\MariaDB 11.4\bin\mysql.exe" -u root -p -h 127.0.0.1
Root-Passwort eingeben. Es erscheint:
MariaDB [(none)]>
Ab hier werden SQL-Befehle eingegeben, jeweils mit Semikolon am Ende und Enter. Nach jedem Befehl muss Query OK erscheinen.
4.2 Datenbank anlegen
CREATE DATABASE beav_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
⚠️Character Set muss utf8mb4 sein
beAV Pro benötigt zwingend utf8mb4 für Emojis, Umlaute und Sonderzeichen. utf8 (ohne mb4) ist nicht ausreichend.
Die Datenbank bleibt leer. Die Tabellen legt der Web-Installer später selbst an — er erwartet ausdrücklich eine vorhandene, leere Datenbank und erstellt sie nicht.
4.3 Benutzer anlegen
Wichtig: Das Passwort wird hier festgelegt, nicht irgendwo abgelesen. Es wird später im Web-Installer erneut gebraucht.
Empfehlung: ein zufälliger Wert aus dem Passwortmanager, mindestens 20 Zeichen. Auf Anführungszeichen, Backslash und Prozentzeichen verzichten, weil sie in der Eingabeaufforderung Probleme machen.
PASSWORT in den folgenden Zeilen durch den gewählten Wert ersetzen. Die Anführungszeichen bleiben stehen.
CREATE USER 'beav_user'@'localhost' IDENTIFIED BY 'PASSWORT';
CREATE USER 'beav_user'@'127.0.0.1' IDENTIFIED BY 'PASSWORT';
CREATE USER 'beav_user'@'::1' IDENTIFIED BY 'PASSWORT';
GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, ALTER, DROP, INDEX
ON beav_db.* TO 'beav_user'@'localhost';
GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, ALTER, DROP, INDEX
ON beav_db.* TO 'beav_user'@'127.0.0.1';
GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, ALTER, DROP, INDEX
ON beav_db.* TO 'beav_user'@'::1';
FLUSH PRIVILEGES;
ℹ️Warum drei Konten für denselben Benutzer?
Unter Windows kann PHP den Namen localhost auf drei Weisen auflösen: als Name, als IPv4-Adresse 127.0.0.1 oder als IPv6-Adresse ::1. Für die Datenbank sind das drei verschiedene Herkünfte. Nur wenn alle drei Konten existieren, verbindet sich die Anwendung zuverlässig — unabhängig davon, welchen Weg PHP im Einzelfall wählt.
Wird nur eines angelegt, funktioniert die Anmeldung möglicherweise heute und nach einer Änderung an Windows oder PHP nicht mehr.
Warum nur diese Rechte und nicht ALL PRIVILEGES? Die Anwendung braucht genau diese acht. Alles darüber hinaus — etwa das Anlegen weiterer Benutzer oder der Zugriff auf fremde Datenbanken — wäre ein unnötiges Risiko, falls die Zugangsdaten je in falsche Hände geraten.
Abmelden:
EXIT;
4.4 Prüfen
"C:\Program Files\MariaDB 11.4\bin\mysql.exe" -u beav_user -p -h 127.0.0.1 beav_db -e "SELECT DATABASE();"
Erwartet: die Ausgabe beav_db.
Damit ist in einem Schritt bewiesen, dass der Benutzer existiert, das Passwort stimmt und der Zugriff auf die richtige Datenbank funktioniert.
5. Weiter mit der Installationsanleitung
✅Die Datenbank ist fertig
Alles Weitere — Dateien entpacken, Verzeichnisse anlegen, Webserver einrichten, Web-Installer ausführen — steht in der Installationsanleitung von beAV Pro.
So steigen Sie dort ein
| Beginnen bei | Schritt 1 — ZIP-Archiv entpacken |
|---|---|
| Überspringen | Schritt 3 — Datenbank vorbereiten (hier bereits erledigt) |
| Fortfahren ab | Schritt 4 — Webserver konfigurieren |
Diese Werte tragen Sie im Web-Installer ein (Schritt 2 von 5)
| Feld | Wert |
|---|---|
| Host | 127.0.0.1 |
| Datenbank | beav_db |
| Benutzer | beav_user |
| Passwort | das in Abschnitt 4.3 festgelegte Passwort |
127.0.0.1 ist gegenüber localhost vorzuziehen, weil es eindeutig ist und den Umweg über die Namensauflösung vermeidet.
Was Sie außerdem bereithalten müssen
Der Web-Installer fragt nicht nur die Datenbank ab, sondern führt durch fünf Schritte. Ohne diese Angaben kommen Sie dort nicht durch:
- Lizenzschlüssel und E-Mail-Adresse aus dem Kauf. Der Installer prüft sie online — der Rechner braucht Zugriff auf
kunden.beav-web.de - Admin-Benutzername und -Passwort für die Anwendung, mindestens 8 Zeichen. Das ist ein drittes Passwort, unabhängig von
rootundbeav_user - Entscheidung zum Dateispeicher: kein Speicher, lokaler Ordner, WebDAV oder S3
6. Datensicherung einrichten
🔴Nicht aufschieben
Ohne Sicherung ist eine Datenbank ein Totalverlust-Risiko. Dieser Abschnitt gehört zur Inbetriebnahme.
Erst durchführen, wenn beAV Pro installiert ist und läuft — vorher ist die Datenbank leer und es gibt nichts zu sichern.
6.1 Sicherungsordner anlegen
mkdir C:\beav_backup
Liegt der Ordner auf derselben Platte wie die Datenbank, schützt er nicht vor einem Plattenausfall. Besser ist ein zweites Laufwerk oder ein Netzlaufwerk. Zusätzlich sollte der Ordner in eine bestehende Datensicherung des Betriebs einbezogen werden.
6.2 Einmalige Sicherung von Hand
Wird nur einmal gesichert — etwa vor einer Änderung an der Anwendung —, braucht es weder Skript noch hinterlegtes Passwort. Mit -p fragt das Programm interaktiv, und es landet nichts auf der Platte.
Eingabeaufforderung als Administrator:
cd /d "C:\Program Files\MariaDB 11.4\bin"
mysqldump.exe -u root -p --single-transaction --routines ^
--triggers --hex-blob --default-character-set=utf8mb4 ^
beav_db > C:\beav_backup\einmalig.sql
Anschließend nach Abschnitt 6.6 prüfen. Für die regelmäßige Sicherung geht es mit 6.3 weiter.
ℹ️Warum das im laufenden Betrieb geht
--single-transaction holt sich einen in sich stimmigen Stand aller Tabellen, während weitergearbeitet wird. Der Dienst muss dafür nicht gestoppt werden.
Für eine Dateikopie des Datenverzeichnisses gilt das nicht. Wer C:\Program Files\MariaDB 11.4\data im laufenden Betrieb kopiert, erhält mit hoher Wahrscheinlichkeit eine inkonsistente und damit wertlose Kopie — ohne dass man ihr das ansehen könnte. Dasselbe gilt für Sicherungen auf Ebene der virtuellen Maschine: als zusätzliche Absicherung sinnvoll, als alleinige Datenbanksicherung nicht ausreichend.
6.3 Eigenen Sicherungsbenutzer anlegen
Eine geplante Aufgabe kann kein Passwort eintippen — es muss also irgendwo hinterlegt werden. Entscheidend ist deshalb nicht, das Hinterlegen zu vermeiden, sondern dafür zu sorgen, dass das hinterlegte Konto möglichst wenig darf.
🔴Weder root noch beav_user verwenden
root darf alles — wer die Datei liest, kann jede Datenbank verändern und löschen. Und beav_user ist für den laufenden Betrieb reserviert und darf schreiben.
Ein dritter Benutzer, der ausschließlich lesen kann, löst beides.
In der MariaDB-Konsole als root (Anmeldung wie in Abschnitt 4.1):
CREATE USER 'beav_backup'@'localhost'
IDENTIFIED BY 'HIER_EIN_EIGENES_PASSWORT';
GRANT SELECT, SHOW VIEW, TRIGGER, LOCK TABLES, EVENT
ON beav_db.* TO 'beav_backup'@'localhost';
FLUSH PRIVILEGES;
Gerät dieses Passwort in falsche Hände, lässt sich damit nichts ändern und nichts löschen — nur lesen, was ohnehin in der Sicherung steht.
6.4 Zugangsdaten hinterlegen
Das Passwort gehört nicht in die Befehlszeile — dort wäre es für jeden sichtbar, der die laufenden Prozesse einsehen kann. Es kommt stattdessen in eine eigene Datei.
[client]
user=beav_backup
password=HIER_DAS_SICHERUNGS_PASSWORT
host=127.0.0.1
⚠️Zugriff auf den Ordner einschränken
Rechtsklick auf C:\beav_backup → Eigenschaften → Sicherheit → Vererbung deaktivieren, dann alle Einträge außer Administratoren und SYSTEM entfernen. Im Ordner liegen neben der Zugangsdatei auch die Sicherungen selbst — also der gesamte Datenbestand.
ℹ️Ganz ohne Passwort — was möglich wäre
MariaDB bringt unter Windows das Plugin auth_named_pipe mit. Damit ließe sich ein Konto anlegen, das sich über das Windows-Benutzerkonto ausweist statt über ein Passwort. Es ist standardmäßig nicht aktiviert und erfordert einen Eintrag in der Serverkonfiguration, einen Neustart des Dienstes und einen MariaDB-Benutzer, dessen Name mit dem Windows-Konto der geplanten Aufgabe übereinstimmt. Das ist eine eigene Änderung mit eigenem Test — der Sicherungsbenutzer mit Leserechten aus 6.3 ist der sinnvolle Standard.
Der verschlüsselte Anmeldedaten-Tresor mysql_config_editor (.mylogin.cnf) ist dagegen ein MySQL-Werkzeug und in MariaDB nicht enthalten.
6.5 Sicherungsskript erstellen
@echo off
setlocal
set MYSQLDUMP="C:\Program Files\MariaDB 11.4\bin\mysqldump.exe"
set ZIEL=C:\beav_backup
set DBNAME=beav_db
for /f %%i in ('powershell -NoProfile -Command "Get-Date -Format yyyy-MM-dd_HHmm"') do set STAMP=%%i
%MYSQLDUMP% --defaults-extra-file="%ZIEL%\backup.cnf" ^
--single-transaction --routines --triggers --hex-blob ^
--default-character-set=utf8mb4 ^
%DBNAME% > "%ZIEL%\beav_%STAMP%.sql"
if errorlevel 1 (
echo %date% %time% - FEHLER bei der Sicherung >> "%ZIEL%\backup_fehler.log"
exit /b 1
)
forfiles /p "%ZIEL%" /m beav_*.sql /d -14 /c "cmd /c del @path" > "%ZIEL%\backup_aufraeumen.log"
endlocal
Das Skript sichert die Datenbank mit Zeitstempel und löscht Sicherungen, die älter als 14 Tage sind. Meldet backup_aufraeumen.log, dass keine Dateien gefunden wurden, ist das kein Fehler — dann war noch nichts alt genug zum Löschen.
6.6 Nächtliche Ausführung einrichten
Aufgabenplanung öffnen: Windows-Taste, taskschd.msc, Enter.
- Rechts auf Aufgabe erstellen (nicht „Einfache Aufgabe")
- Reiter Allgemein: Name
beAV Datensicherung. Unabhängig von der Benutzeranmeldung ausführen auswählen und Mit höchsten Privilegien ausführen anhaken - Reiter Trigger → Neu → Täglich, Uhrzeit z. B.
02:00 - Reiter Aktionen → Neu → Programm:
C:\beav_backup\backup.bat - Reiter Einstellungen: „Aufgabe beenden, falls sie länger ausgeführt wird als" auf 1 Stunde setzen
6.7 Sicherung prüfen
Aufgabe in der Aufgabenplanung markieren und Ausführen klicken. Danach die drei folgenden Prüfungen — sie bauen aufeinander auf.
Datei vorhanden und nicht leer
dir C:\beav_backup\*.sql
Eine 0-KB-Datei bedeutet Fehlschlag — dann backup_fehler.log im selben Ordner ansehen.
Vollständig, nicht nur groß
🔴Die Dateigröße allein sagt nichts
Eine mittendrin abgebrochene Sicherung kann mehrere Megabyte groß und trotzdem unbrauchbar sein. mysqldump schreibt ganz am Ende eine Abschlusszeile — nur wenn die da ist, ist die Datei vollständig.
findstr /c:"Dump completed" C:\beav_backup\beav_*.sql
Kommt keine Ausgabe, ist die Sicherung abgebrochen. Diese Prüfung ist wichtiger als die Dateigröße.
Reichen die Rechte des Sicherungsbenutzers?
Der Benutzer aus 6.3 hat bewusst nur Leserechte. Ob sie für alle Bestandteile ausreichen, zeigt erst der Durchlauf.
type C:\beav_backup\backup_fehler.log
Meldungen mit Access denied oder does not exist weisen auf ein fehlendes Recht hin.
Sind in der Datenbank gespeicherte Prozeduren oder Funktionen vorhanden, müssen sie auch in der Sicherung stehen:
findstr /c:"CREATE PROCEDURE" /c:"CREATE FUNCTION" ^
C:\beav_backup\beav_*.sql
Fehlen sie, obwohl es welche gibt, genügt ein zusätzliches Recht:
GRANT SELECT ON mysql.proc TO 'beav_backup'@'localhost';
FLUSH PRIVILEGES;
6.8 Der eigentliche Test: zurückspielen
⚠️Eine Sicherung, die nie zurückgespielt wurde, ist nur eine Vermutung
Vierteljährlich durchführen — und niemals nach beav_db, sondern in eine Testdatenbank.
CREATE DATABASE beav_test;
mysql.exe -u root -p beav_test < C:\beav_backup\beav_2026-08-09_0200.sql
Danach stichprobenartig vergleichen — beide Zahlen müssen übereinstimmen:
SELECT COUNT(*) FROM beav_test.personal;
SELECT COUNT(*) FROM beav_db.personal;
Aufräumen:
DROP DATABASE beav_test;
6.9 Wiederherstellung im Ernstfall
🔴Zuerst den aktuellen Stand sichern
Auch wenn er beschädigt aussieht. Er kann Daten enthalten, die in der letzten Sicherung fehlen — und ohne ihn ist kein zweiter Versuch möglich.
1. Webserver stoppen, damit während der Wiederherstellung nichts geschrieben wird:
net stop Apache
2. Vorhandenen Stand sichern:
mysqldump.exe -u root -p --single-transaction --routines ^
--triggers --hex-blob beav_db > C:\beav_backup\vor_restore.sql
3. Datenbank leeren und neu anlegen:
DROP DATABASE beav_db;
CREATE DATABASE beav_db
CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
4. Sicherung einspielen:
mysql.exe -u root -p beav_db < C:\beav_backup\beav_2026-08-09_0200.sql
5. Rechte prüfen — sie hängen an der Datenbank und gehen beim DROP DATABASE verloren:
SHOW GRANTS FOR 'beav_user'@'localhost';
Fehlen sie, nach Abschnitt 4.3 neu vergeben.
6. Webserver starten und in der Anwendung stichprobenartig prüfen:
net start Apache
6.10 Aufbewahrung
| Was | Warum |
|---|---|
| 14 Tage vorhalten | im Skript einstellbar. Zu kurz gewählt, fällt ein Schaden auf, der schon länger besteht, erst auf, wenn alle Sicherungen ihn enthalten |
| Zweiter Ort | Pflicht. Eine Sicherung neben der Datenbank schützt nicht vor Plattenausfall, Diebstahl oder Brand |
| Offline-Kopie | dringend empfohlen. Ein Verschlüsselungstrojaner erreicht auch verbundene Netzlaufwerke |
⚠️Die häufigste Ursache für Datenverlust
Das ist nicht die fehlende Sicherung, sondern eine, die seit Monaten leer läuft und die niemand geprüft hat. Prüfungen nach 6.7 gehören wöchentlich in den Ablauf, der Rückspieltest nach 6.8 vierteljährlich.
7. Wenn der Dienst nicht startet
Fehlerprotokoll ansehen:
powershell -Command "Get-Content 'C:\Program Files\MariaDB 11.4\data\*.err' -Tail 30"
| Meldung | Ursache und Abhilfe |
|---|---|
unknown variable 'aria_recover' | Heißt jetzt aria_recover_options. Zeile löschen oder umbenennen |
Can't create/write to file | Editor hatte keine Administratorrechte |
| Port bereits belegt | Eine andere Datenbank läuft auf 3306. Siehe Anhang A |
Cannot allocate memory | Pufferpool zu groß. Wert aus Abschnitt 1.3 halbieren |
Access denied for user 'root' | Falsches Root-Passwort |
Nach jeder Korrektur als Administrator:
net stop MariaDB
net start MariaDB
Die Anwendung verbindet sich nicht, obwohl der Dienst läuft
| Symptom im Web-Installer | Ursache und Abhilfe |
|---|---|
| „Zugriff verweigert" | Passwort falsch, oder eines der drei Konten aus 4.3 fehlt |
| „Datenbank existiert nicht" | Name falsch geschrieben — er lautet beav_db |
| „Verbindung abgelehnt" | Läuft der Webserver auf einem anderen Rechner? Dann bind-address in der my.ini auskommentieren und Dienst neu starten |
8. Updates
⚠️MariaDB aktualisiert sich nicht selbst
Das MSI-Paket erscheint nicht in Windows Update. Der Betreiber muss aktiv werden.
Empfohlener Rhythmus: zweimal jährlich, als Kalendereintrag. Auf https://mariadb.org/download/ nachsehen, ob eine neuere 11.4er Version vorliegt.
Ablauf
-
Datenbank sichern:
"C:\Program Files\MariaDB 11.4\bin\mysqldump.exe" -u root -p --single-transaction --routines --triggers --hex-blob --default-character-set=utf8mb4 beav_db > C:\beav_vor_update.sql - Neues MSI herunterladen
- MSI starten — der Installer erkennt die vorhandene Installation und bietet ein Upgrade an
-
Systemtabellen anpassen:
"C:\Program Files\MariaDB 11.4\bin\mariadb-upgrade.exe" -u root -p -h 127.0.0.1 - Anwendung testen
Innerhalb der 11.4er Linie handelt es sich um Fehler- und Sicherheitskorrekturen ohne Funktionsänderungen. Das Risiko ist gering. Der Wechsel auf eine höhere Hauptversion steht erst an, wenn der Support für 11.4 im Jahr 2029 ausläuft.
Anhang A — Wenn bereits eine Datenbank installiert ist
Läuft auf dem Rechner schon eine Datenbank, belegt sie Port 3306. Zwei Datenbanken können denselben Port nicht gleichzeitig nutzen — eine der beiden startet dann nicht.
Diesen Anhang vor Abschnitt 2 abarbeiten.
A.1 Prüfen, was läuft
netstat -ano | findstr :3306
Erscheint eine Zeile, ist der Port belegt.
sc query state= all | findstr /i "mysql maria"
Zeigt die Namen vorhandener Datenbankdienste.
🔴Vorhandene Daten zuerst sichern
Liegen in der vorhandenen Datenbank noch benötigte Daten, gehören diese vor jeder Änderung gesichert. Wie diese Daten anschließend in die neue Installation übernommen werden, ist ein eigenes Thema und nicht Gegenstand dieser Anleitung.
A.2 Alte Datenbank stilllegen
Läuft sie als Windows-Dienst, dann als Administrator:
net stop DIENSTNAME
sc config DIENSTNAME start= disabled
Das Leerzeichen nach start= ist Pflicht. Prüfen:
sc qc DIENSTNAME
Erwartet: START_TYPE : 4 DISABLED
Läuft sie stattdessen über eine Steueroberfläche wie das XAMPP Control Panel, dort den Autostart deaktivieren.
A.3 Zusätzlich absichern
Empfohlen, damit niemand versehentlich die alte Datenbank startet und die Anwendung dann auf einem veralteten Datenstand arbeitet: In der Konfigurationsdatei der alten Datenbank beide port=-Zeilen auf 3307 ändern. Damit kollidiert sie auch bei einem versehentlichen Start nicht mehr.
Sinnvoll ist außerdem eine Hinweisdatei im Verzeichnis der alten Installation, etwa ACHTUNG_STILLGELEGT.txt, mit einem Zweizeiler, warum das so ist und wo die aktive Datenbank liegt.
A.4 Prüfen, dass der Port frei ist
netstat -ano | findstr :3306
Es darf keine Zeile mehr erscheinen. Erst dann mit Abschnitt 2 fortfahren.
A.5 Nach der Umstellung
⚠️Sicherungsskripte laufen sonst ins Leere
Bestehende Datensicherungsskripte verweisen weiterhin auf den alten mysqldump.exe-Pfad. Dieser existiert zwar noch, verbindet sich aber mit einer Datenbank, die nicht mehr läuft — die Sicherungen laufen sonst unbemerkt ins Leere. Pfad auf C:\Program Files\MariaDB 11.4\bin\mysqldump.exe umstellen.
Anhang B — phpMyAdmin
phpMyAdmin ist nicht Bestandteil von MariaDB, sondern ein eigenes Projekt. Es benötigt einen Webserver mit PHP. Für den Betrieb von beAV Pro ist es nicht erforderlich.
Ist es vorhanden, in config.inc.php eintragen:
$cfg['Servers'][$i]['host'] = '127.0.0.1';
$cfg['Servers'][$i]['auth_type'] = 'cookie';
Die Einträge für user und password leeren.
🔴auth_type = 'config' ist gefährlich
Mit auth_type = 'cookie' fragt phpMyAdmin bei jedem Aufruf nach Zugangsdaten. Die Alternative 'config' speichert das Passwort im Klartext in der Datei und lässt jeden Besucher ohne Anmeldung als Administrator hinein. Auf einem aus dem Internet erreichbaren Server ist das ein erhebliches Risiko.
Zusätzlich empfohlen: Den Zugriff auf das phpMyAdmin-Verzeichnis in der Webserver-Konfiguration auf das lokale Netz beschränken.
✅Fertig — wie geht es weiter?
Die Datenbank steht. Fahren Sie fort mit der Installationsanleitung von beAV Pro, beginnend bei Schritt 1. Schritt 3 „Datenbank vorbereiten" können Sie überspringen.