Schnelle Zusammenfassung
Um MySQL auf einem VPS Windows Server in 5 Schritten zu installieren:
1) Laden Sie den MySQL Installer 8.4 LTS von dev.mysql.com herunter,
2) starten Sie den Installer im Server Only-Modus,
3) konfigurieren Sie das Root-Passwort und die Authentifizierung caching_sha2_password,
4) überprüfen Sie den Dienst mit Get-Service MySQL84 in PowerShell,
5) sichern Sie die Installation mit mysql_secure_installation. Rechnen Sie mit 15 Minuten. MySQL 8.4 LTS (aktuelle Version: 8.4.9) ist die empfohlene Version für die Produktion.
Voraussetzungen
Überprüfen Sie vor dem Start diese Punkte auf Ihrem Rechner:
Windows Server 2019 oder 2022 (2022 empfohlen)
Mindestens 2 GB RAM: 4 GB empfohlen für den realen Einsatz
Administratorzugang über RDP
Port 3306 verfügbar (überprüfen Sie mit
netstat -ano | findstr :3306).NET Framework 4.5.2+ (in Windows Server 2019/2022 enthalten)
Haben Sie noch keinen Windows VPS? Entdecken Sie die Angebote VPS Windows OuiHeberg: verfügbar ab wenigen Euro pro Monat mit vorinstalliertem Windows Server 2022.
Welche MySQL-Version wählen?
Seit 2023 hat Oracle einen Versionszyklus mit zwei Zweigen eingeführt: LTS (Langzeitunterstützung) und Innovation (häufige Updates, weniger stabil). So sieht es konkret im Mai 2026 aus:
Version | Typ | Letzte Veröffentlichung | Support bis | Empfohlen für |
|---|---|---|---|---|
MySQL 8.0 | Legacy | 8.0.46 | EOL April 2026 | Dringende Migration erforderlich |
MySQL 8.4 LTS | LTS ✅ | 8.4.9 | 2032 | Produktion: empfohlene Wahl |
MySQL 9.7 LTS | LTS (neu) | 9.7.0 | 2032+ | Produktion (veröffentlicht April 2026) |
Unsere Empfehlung: MySQL 8.4.9 LTS für die Produktion.
MySQL 8.0 ist seit April 2026 am Ende seiner Lebensdauer: Installieren Sie es nicht mehr. MySQL 9.7 LTS wurde gerade veröffentlicht (21. April 2026): es ist stabil, aber sein Ökosystem von Tools und Treibern ist noch nicht so ausgereift wie das von 8.4. Die 8.4 LTS bleibt die sicherste Wahl für einen Produktionsserver in 2025-2026.
Methode 1: Installation über den grafischen Installer (GUI)
Dies ist die einfachste Methode. Sie eignet sich für die meisten Fälle.
MySQL Installer herunterladen
Gehen Sie zu dev.mysql.com/downloads/installer/ und laden Sie MySQL Installer für Windows (Datei mysql-installer-community-8.4.x.msi, ~450 MB für die Vollversion) herunter.
Sie können auch den Web-Installer (~3 MB) verwenden, der die Komponenten bei Bedarf herunterlädt: praktisch, wenn Sie eine gute Verbindung haben.
Wählen Sie den Installationstyp
Beim Start bietet der Installer mehrere Profile an:
Typ | Was er installiert | Verwendungszweck |
|---|---|---|
Server Only | Nur MySQL Server | Produktions-VPS ✅ |
Developer Default | Server + Workbench + Connectoren | Entwicklungsarbeitsplatz |
Full | Alles (>1 GB) | Selten nützlich auf einem VPS |
Wählen Sie "Server Only" auf einem VPS. Es ist nicht notwendig, MySQL Workbench auf einem Server ohne permanente grafische Benutzeroberfläche zu installieren.
MySQL-Server konfigurieren
Der Assistent stellt Ihnen mehrere wichtige Fragen:
Konfigurationstyp:
Development Computer: MySQL verwendet wenig Ressourcen (für einen Entwicklungsrechner)
Server Computer: teilt die Ressourcen mit anderen Diensten
Dedicated Computer: MySQL verwendet den Großteil des RAMs ✅ (empfohlen auf einem VPS, der für MySQL vorgesehen ist)
Port: Lassen Sie 3306 standardmäßig, es sei denn, es gibt spezifische Einschränkungen.
Authentifizierungsmethode: Wählen Sie caching_sha2_password (empfohlene Option seit MySQL 8.0). Verwenden Sie mysql_native_password nur, wenn Sie alte Clients haben, die SHA-2 nicht unterstützen.
Root-Passwort: Wählen Sie ein starkes Passwort (16+ Zeichen, Großbuchstaben, Zahlen, Sonderzeichen). Notieren Sie es sofort in einem Passwortmanager.
Windows-Dienst: Lassen Sie den Standardnamen (MySQL84) und aktivieren Sie "MySQL Server beim Systemstart starten".
Installation überprüfen
Nachdem die Installation abgeschlossen ist, öffnen Sie PowerShell als Administrator:
# Überprüfen, ob der Dienst läuft
Get-Service MySQL84
# Erwartetes Ergebnis:
# Status Name Anzeigename
# ------ ---- -----------
# Running MySQL84 MySQL84
Verbinden Sie sich dann mit der MySQL-CLI, um zu bestätigen:
cd "C:\Program Files\MySQL\MySQL Server 8.4\bin"
.\mysql.exe -u root -p
Geben Sie Ihr Root-Passwort ein. Wenn Sie die Eingabeaufforderung mysql> erhalten, war die Installation erfolgreich.
-- Installierte Version überprüfen
SELECT VERSION();
-- Ergebnis: 8.4.9
Methode 2: Stille Installation über PowerShell (fortgeschritten)
Diese Methode ist ideal, um Bereitstellungen zu automatisieren oder mehrere VPS ohne grafische Benutzeroberfläche zu konfigurieren. Alles geschieht in PowerShell.
# 1. Laden Sie das MSI MySQL 8.4 LTS herunter
$url = "https://dev.mysql.com/get/Downloads/MySQL-8.4/mysql-8.4.9-winx64.msi"
$dest = "C:\Temp\mysql-8.4.9-winx64.msi"
New-Item -ItemType Directory -Force -Path "C:\Temp" | Out-Null
Invoke-WebRequest -Uri $url -OutFile $dest -UseBasicParsing
# 2. Stille Installation mit Parametern
$arguments = @(
"/i", $dest,
"/qn",
"/L*V", "C:\Temp\mysql_install.log",
"INSTALLDIR=`"C:\Program Files\MySQL\MySQL Server 8.4\`"",
"DATADIR=`"C:\ProgramData\MySQL\MySQL Server 8.4\Data\`"",
"PORT=3306",
"SERVICENAME=MySQL84",
"NTSERVICE=1",
"ADDLOCAL=MySQLServer"
)
Start-Process msiexec.exe -ArgumentList $arguments -Wait -NoNewWindow
# 3. Datenbank initialisieren
$mysqlBin = "C:\Program Files\MySQL\MySQL Server 8.4\bin"
& "$mysqlBin\mysqld.exe" --initialize-insecure --user=mysql
# 4. Dienst starten
Start-Service MySQL84
# 5. Root-Passwort festlegen (ersetzen Sie IhrPasswort durch ein starkes Passwort)
& "$mysqlBin\mysql.exe" -u root --connect-expired-password -e "ALTER USER 'root'@'localhost' IDENTIFIED BY 'IhrPasswort!';"
Write-Host "MySQL 8.4 erfolgreich installiert." -ForegroundColor Green
Überprüfung nach der Installation:
Get-Service MySQL84
& "C:\Program Files\MySQL\MySQL Server 8.4\bin\mysql.exe" -u root -p -e "SELECT VERSION();"
Hinweis: Die Option
--initialize-insecureerstellt ein Root-Konto ohne Passwort. Das Skript legt es sofort danach fest. Lassen Sie niemals ein MySQL ohne Root-Passwort, auch nicht vorübergehend.
Remote-Zugriff auf MySQL konfigurieren
Standardmäßig hört MySQL nur auf 127.0.0.1. Um sich von einem anderen Server oder einem Tool wie MySQL Workbench zu verbinden, müssen Sie den Remote-Zugriff öffnen.
Port 3306 in der Windows-Firewall öffnen
# Fügen Sie eine eingehende Regel für MySQL hinzu
New-NetFirewallRule `
-DisplayName "MySQL 3306" `
-Direction Inbound `
-Protocol TCP `
-LocalPort 3306 `
-Action Allow `
-Profile Any
# Regel überprüfen
Get-NetFirewallRule -DisplayName "MySQL 3306"
Für weitere Informationen zur Verwaltung der Firewall lesen Sie unser Handbuch zur Konfiguration der Windows Server-Firewall.
Benutzer mit Remote-Zugriff erstellen
Gewähren Sie niemals Remote-Zugriff auf das Konto root. Erstellen Sie einen dedizierten Benutzer:
-- Zuerst als Root anmelden
mysql -u root -p
-- Erstellen Sie einen Remote-Benutzer (ersetzen Sie die IP durch die Ihres Clients)
CREATE USER 'monuser'@'192.168.1.100' IDENTIFIED BY 'StarkesPasswort!2025';
-- Oder um alle IPs zu erlauben (weniger sicher)
CREATE USER 'monuser'@'%' IDENTIFIED BY 'StarkesPasswort!2025';
-- Berechtigungen für eine bestimmte Datenbank gewähren
GRANT SELECT, INSERT, UPDATE, DELETE ON mabase.* TO 'monuser'@'192.168.1.100';
FLUSH PRIVILEGES;
Tipp: Beschränken Sie immer den Zugriff auf eine bestimmte IP anstelle des Wildcards %.
SSL/TLS für Remote-Verbindungen aktivieren
MySQL 8.4 generiert beim Start automatisch SSL-Zertifikate. Überprüfen Sie, ob sie aktiv sind:
SHOW VARIABLES LIKE '%ssl%';
-- have_ssl sollte anzeigen: YES
Um SSL für einen Remote-Benutzer zu erzwingen:
ALTER USER 'monuser'@'192.168.1.100' REQUIRE SSL;
FLUSH PRIVILEGES;
Auf der Client-Seite erfolgt die Verbindung dann mit:
mysql -u monuser -p -h SERVER_IP --ssl-mode=REQUIRED
MySQL-Leistung optimieren (my.ini)
Die MySQL-Konfigurationsdatei unter Windows befindet sich hier: C:\ProgramData\MySQL\MySQL Server 8.4\my.ini
Öffnen Sie sie mit Notepad++ oder PowerShell und passen Sie diese Parameter an Ihre verfügbare RAM an:
[mysqld]
# Größe des InnoDB-Puffers: der wichtigste Parameter
# Stellen Sie 70% des verfügbaren RAMs für MySQL ein
innodb_buffer_pool_size = 2G
# Maximale Anzahl gleichzeitiger Verbindungen
max_connections = 150
# Größe der InnoDB-Logdateien
innodb_log_file_size = 256M
# Abfrage-Cache (standardmäßig in 8.x deaktiviert, auf 0 lassen)
query_cache_size = 0
query_cache_type = 0
# I/O-Threads InnoDB (= Anzahl der CPU-Kerne)
innodb_read_io_threads = 4
innodb_write_io_threads = 4
Empfohlene Konfigurationstabelle je nach RAM des VPS:
RAM des VPS |
|
|
|
|---|---|---|---|
2 GB | 1G | 75 | 128M |
4 GB | 2,5G | 150 | 256M |
8 GB | 5G | 300 | 512M |
16 GB | 11G | 500 | 1G |
Nach der Änderung starten Sie den Dienst neu:
Restart-Service MySQL84
MySQL auf Windows Server sichern
Führen Sie mysql_secure_installation aus
Das ist das erste, was Sie nach der Installation tun sollten:
cd "C:\Program Files\MySQL\MySQL Server 8.4\bin"
.\mysql_secure_installation.exe
Das Tool führt Sie durch das Entfernen anonymer Benutzer, das Deaktivieren des Remote-Root-Logins und das Löschen der Datenbank test. Antworten Sie auf alle Fragen mit Y.
Die 8 wesentlichen Sicherheitsmaßnahmen
1. Anonyme Benutzer entfernen
DELETE FROM mysql.user WHERE User='';
FLUSH PRIVILEGES;
2. Remote-Root-Login deaktivieren
DELETE FROM mysql.user WHERE User='root' AND Host NOT IN ('localhost', '127.0.0.1', '::1');
FLUSH PRIVILEGES;
3. Datenbank test löschen
DROP DATABASE IF EXISTS test;
DELETE FROM mysql.db WHERE Db='test' OR Db='test\\_%';
FLUSH PRIVILEGES;
4. Starke Passwörter verwenden: Validierungsrichtlinie aktivieren
INSTALL PLUGIN validate_password SONAME 'validate_password.dll';
SET GLOBAL validate_password.policy = STRONG;
SET GLOBAL validate_password.length = 12;
5. Berechtigungen pro Benutzer einschränken
Verwenden Sie niemals GRANT ALL PRIVILEGES ON *.* TO .... Gewähren Sie nur die erforderlichen Rechte für die betreffenden Datenbanken.
-- Gutes Beispiel
GRANT SELECT, INSERT, UPDATE ON appdb.* TO 'appuser'@'localhost';
-- Absolut zu vermeiden
-- GRANT ALL PRIVILEGES ON *.* TO 'appuser'@'%';
6. Audit-Logs aktivieren
Fügen Sie in my.ini hinzu:
[mysqld]
general_log = 1
general_log_file = "C:/ProgramData/MySQL/MySQL Server 8.4/Data/mysql_general.log"
log_error = "C:/ProgramData/MySQL/MySQL Server 8.4/Data/mysql_error.log"
7. Verbindungen verschlüsseln (SSL/TLS)
Wie in der Sektion Remote-Zugriff gesehen, erzwingen Sie SSL für alle Benutzer, die sich von außen verbinden, mit REQUIRE SSL.
8. Regelmäßig aktualisieren
Besuchen Sie dev.mysql.com/downloads/mysql/ für neue Versionen. Sicherheitsupdates sind häufig: Abonnieren Sie die MySQL Security Advisories.
MySQL-Backups automatisieren
Vollständiges PowerShell-Skript mit Rotation
Kopieren Sie dieses Skript in C:\Scripts\mysql_backup.ps1:
# =============================================
# MySQL Backup-Skript mit Rotation
# Über den Taskplaner zu planen
# =============================================
$mysqlBin = "C:\Program Files\MySQL\MySQL Server 8.4\bin"
$backupDir = "C:\Backups\MySQL"
$mysqlUser = "root"
$mysqlPass = "IhrPasswort!" # Oder verwenden Sie eine .cnf-Datei
$retention = 7 # Aufbewahrungstage
# Erstellen Sie das Backup-Verzeichnis, falls erforderlich
New-Item -ItemType Directory -Force -Path $backupDir | Out-Null
# Dateiname mit Zeitstempel
$timestamp = Get-Date -Format "yyyy-MM-dd_HH-mm"
$backupFile = "$backupDir\mysql_backup_$timestamp.sql"
$compressedFile = "$backupFile.gz"
# Alle Datenbanken auflisten (außer Systemdatenbanken)
$databases = & "$mysqlBin\mysql.exe" -u $mysqlUser -p"$mysqlPass" `
-e "SHOW DATABASES;" --batch --skip-column-names 2>$null |
Where-Object { $_ -notin @('information_schema','performance_schema','sys','mysql') }
# Dump jeder Datenbank
foreach ($db in $databases) {
$dbFile = "$backupDir\${db}_$timestamp.sql"
& "$mysqlBin\mysqldump.exe" `
-u $mysqlUser -p"$mysqlPass" `
--single-transaction `
--routines `
--triggers `
--databases $db `
--result-file=$dbFile 2>$null
if ($LASTEXITCODE -eq 0) {
Write-Host "✓ Backup erfolgreich: $db" -ForegroundColor Green
} else {
Write-Host "✗ Fehler bei: $db" -ForegroundColor Red
}
}
# Rotation: Löschen Sie Dateien, die älter als $retention Tage sind
Get-ChildItem -Path $backupDir -Filter "*.sql" |
Where-Object { $_.LastWriteTime -lt (Get-Date).AddDays(-$retention) } |
Remove-Item -Force
Write-Host "Rotation durchgeführt. Dateien aufbewahrt: $retention Tage." -ForegroundColor Cyan
Planen mit dem Windows-Taskplaner
# Erstellen Sie eine geplante Aufgabe: tägliches Backup um 2 Uhr morgens
$action = New-ScheduledTaskAction `
-Execute "PowerShell.exe" `
-Argument "-NonInteractive -ExecutionPolicy Bypass -File C:\Scripts\mysql_backup.ps1"
$trigger = New-ScheduledTaskTrigger -Daily -At "02:00"
$settings = New-ScheduledTaskSettingsSet `
-ExecutionTimeLimit (New-TimeSpan -Hours 1) `
-RestartCount 3 `
-RestartInterval (New-TimeSpan -Minutes 5)
Register-ScheduledTask `
-TaskName "MySQL Backup Daily" `
-Action $action `
-Trigger $trigger `
-Settings $settings `
-RunLevel Highest `
-Force
Write-Host "Geplante Aufgabe erfolgreich erstellt." -ForegroundColor Green
Für weitere Informationen zur vollständigen Backup-Strategie Ihres Servers lesen Sie unser Handbuch zur Sicherung Ihres Windows VPS.
Fehlerbehebung: 6 häufige Fehler
1. Der MySQL-Dienst startet nicht
Überprüfen Sie zuerst die Fehlerprotokolle:
Get-Content "C:\ProgramData\MySQL\MySQL Server 8.4\Data\[maschinenname].err" -Tail 50
Häufige Ursachen: Port 3306 bereits belegt, unzureichende Berechtigungen für den Data-Ordner, fehlerhaft formatierte my.ini-Datei.
2. Fehler "Zugriff verweigert für Benutzer root"
Wenn Sie das Root-Passwort vergessen haben oder die Authentifizierung fehlschlägt:
# Dienst stoppen
Stop-Service MySQL84
# MySQL im Authentifizierungsmodus starten
& "C:\Program Files\MySQL\MySQL Server 8.4\bin\mysqld.exe" --skip-grant-tables --skip-networking
# In einem anderen PowerShell-Fenster ohne Passwort anmelden
& "C:\Program Files\MySQL\MySQL Server 8.4\bin\mysql.exe" -u root
# Passwort zurücksetzen
FLUSH PRIVILEGES;
ALTER USER 'root'@'localhost' IDENTIFIED BY 'NeuesPasswort!';
EXIT;
# Normal neu starten
Stop-Process -Name mysqld -Force
Start-Service MySQL84
3. Der Port 3306 wird bereits verwendet
# Den Prozess identifizieren, der den Port 3306 verwendet
netstat -ano | findstr :3306
# Den Namen des Prozesses mit seiner PID finden
Get-Process -Id [PID_GEFUNDEN]
Entweder stoppen Sie den konkurrierenden Prozess oder ändern Sie den MySQL-Port in my.ini (port=3307).
4. Verbindung aus der Ferne nicht möglich
Schnelle Checkliste:
Ist der Port 3306 in der Windows-Firewall geöffnet? (
Get-NetFirewallRule -DisplayName "MySQL 3306")Hört MySQL auf
0.0.0.0? (SHOW VARIABLES LIKE 'bind_address';sollte*oder0.0.0.0zurückgeben)Hat der Benutzer die Berechtigungen von der entfernten IP? (
SELECT User, Host FROM mysql.user;)Blockiert die Firewall Ihres Hosting-Anbieters/Netzwerks den Port?
Um auf allen Schnittstellen zu hören, fügen Sie in my.ini hinzu:
[mysqld]
bind-address = 0.0.0.0
5. Root-Passwort vergessen (Zurücksetzverfahren)
Siehe Punkt 2 oben: das Verfahren --skip-grant-tables funktioniert in beiden Fällen.
6. Fehler "Tabelle ist voll" (InnoDB)
Dieser Fehler tritt auf, wenn innodb_buffer_pool_size zu niedrig ist oder der Tablespace voll ist.
-- Verfügbaren Speicherplatz überprüfen
SELECT table_schema, ROUND(SUM(data_length+index_length)/1024/1024,1) AS "Größe (MB)"
FROM information_schema.tables
GROUP BY table_schema;
-- Die Größe des InnoDB-Tablespace überprüfen
SHOW VARIABLES LIKE 'innodb_data_file_path';
Erhöhen Sie innodb_buffer_pool_size in my.ini gemäß der Tabelle im Abschnitt Leistung und starten Sie den Dienst neu.
FAQ
Welche MySQL-Version auf Windows Server 2022 installieren?
Installieren Sie MySQL 8.4.9 LTS. Dies ist die empfohlene Long-Term Support-Version für die Produktion in 2026-2028, mit garantierter Unterstützung bis 2032. MySQL 8.0 ist seit April 2026 am Ende seiner Lebensdauer.
Ist MySQL kostenlos auf Windows Server?
Ja. MySQL Community Edition ist völlig kostenlos unter der GPL-Lizenz. MySQL Enterprise Edition (kostenpflichtig) fügt Überwachungs-, Audit- und erweiterte Backup-Tools hinzu: nützlich für große Unternehmen, aber für die meisten Anwendungen nicht erforderlich.
Wie ändere ich den Standardport von MySQL?
Ändern Sie my.ini (C:\ProgramData\MySQL\MySQL Server 8.4\my.ini) und ändern Sie die Zeile port=3306 auf den gewünschten Port (z.B. port=3307). Starten Sie den Dienst neu und aktualisieren Sie die entsprechende Firewall-Regel.
MySQL oder MariaDB auf Windows Server?
Beide sind ausgezeichnete Optionen. MySQL 8.4 LTS ist besser geeignet, wenn Sie Oracle-Tools oder spezifische Funktionen (JSON, Group Replication) verwenden. MariaDB ist oft leistungsfähiger bei gemischten Lasten und bleibt 100% community-basiert. Für einen Standard-VPS unter Windows ist MySQL 8.4 die am besten dokumentierte und am kompatibelsten mit modernen PHP/Python-Stacks.
Wie kann ich überprüfen, ob MySQL korrekt installiert ist?
Zwei schnelle Überprüfungen in PowerShell: Get-Service MySQL84 (der Status sollte Running sein) und mysql -u root -p -e "SELECT VERSION();" (sollte 8.4.9 zurückgeben).
Kann man MySQL auf einem VPS mit 2 GB RAM installieren?
Ja, aber das ist das Minimum. Mit 2 GB stellen Sie innodb_buffer_pool_size = 1G und max_connections = 75 ein. Für echte Produktionslasten (mehrere Dutzend gleichzeitige Anfragen) ist 4 GB RAM das komfortable Minimum.
Nützliche Quellen
MySQL Community Server herunterladen: dev.mysql.com
Offizielle MySQL 8.4 Dokumentation: dev.mysql.com
MySQL 8.4 Versionshinweise: dev.mysql.com
MySQL Sicherheitswarnungen: mysql.com
Ende der Lebensdauer MySQL 8.0 (EOL): dev.mysql.com
