MySQL 8: Root-Passwort unter Ubuntu 20.04 LTS setzen und konfigurieren
Hier ist ein ausführliches Tutorial, wie du das Root-Passwort für MySQL 8 unter Ubuntu 20.04 LTS einrichtest oder änderst.
Standardmäßig verwendet MySQL unter Ubuntu 20.04 das Plugin auth_socket für den Root-Benutzer. Das bedeutet, dass du dich als System-Root (über sudo) ohne Passwort anmelden kannst, aber externe Anwendungen oder klassische Login-Versuche per Passwort fehlschlagen.
Dieses Tutorial zeigt dir, wie du auf die klassische Passwort-Authentifizierung umstellst.
Schritt 1: Verbindung zu MySQL herstellen
Da nach der Installation noch kein Passwort gesetzt ist, musst du dich mit Administratorrechten über das Terminal einloggen:
sudo mysql
Du befindest dich nun in der MySQL-Konsole (mysql>).
Schritt 2: Authentifizierungsmethode prüfen (Optional)
Falls du sehen möchtest, welche Methode aktuell für deine Benutzer eingestellt ist, gib folgenden Befehl ein:
SELECT user, authentication_string, plugin, host FROM mysql.user;
Hier wirst du sehen, dass beim User root unter plugin wahrscheinlich auth_socket steht.
Schritt 3: Root-Passwort setzen
Um das Passwort zu ändern und die Authentifizierungsmethode auf ein Passwort umzustellen, verwende den Befehl ALTER USER.
Wichtig: Ersetze DeinSicheresPasswort durch ein Passwort deiner Wahl.
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'DeinSicheresPasswort';
Schritt 4: Änderungen übernehmen
Damit die Änderungen sofort wirksam werden, musst du die Berechtigungstabellen neu laden:
FLUSH PRIVILEGES;
Nun kannst du die MySQL-Konsole verlassen:
exit;
Schritt 5: Die Anmeldung testen
Ab jetzt kannst du dich nicht mehr einfach nur mit sudo mysql anmelden. Du musst den Parameter -p verwenden, um nach dem Passwort gefragt zu werden:
mysql -u root -p
Gib danach das in Schritt 3 festgelegte Passwort ein.
Schritt 6: Sicherheit erhöhen (Empfohlen)
Es wird dringend empfohlen, das integrierte Sicherheitsskript von MySQL auszuführen, um unsichere Standardeinstellungen zu entfernen (z. B. Test-Datenbanken und anonyme Benutzer).
Gib dazu im Terminal ein:
sudo mysql_secure_installation
Das Skript wird dich Folgendes fragen:
- VALIDATE PASSWORD COMPONENT? (Möchtest du, dass MySQL die Stärke von Passwörtern prüft? – Empfohlen:
y) - Remove anonymous users? (Anonyme Benutzer löschen? – Empfohlen:
y) - Disallow root login remotely? (Remote-Login für Root verbieten? – Empfohlen:
y) - Remove test database and access to it? (Test-Datenbank löschen? – Empfohlen:
y) - Reload privilege tables now? (Tabellen neu laden? – Empfohlen:
y)
Zusammenfassung der Befehle
sudo mysqlALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'Passwort';FLUSH PRIVILEGES;exit;
Dein MySQL 8 Server ist nun mit einem Root-Passwort gesichert!