Windows26. Mai 2026 10 Aufrufe

Installer MySQL auf einem VPS Windows Server

Installer MySQL auf einem VPS Windows Server

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-insecure erstellt 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

innodb_buffer_pool_size

max_connections

innodb_log_file_size

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 * oder 0.0.0.0 zurü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