MySQL 8: Root-Passwort unter Ubuntu 20.04 LTS setzen und konfigurieren

Melden

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:

  1. VALIDATE PASSWORD COMPONENT? (Möchtest du, dass MySQL die Stärke von Passwörtern prüft? – Empfohlen: y)
  2. Remove anonymous users? (Anonyme Benutzer löschen? – Empfohlen: y)
  3. Disallow root login remotely? (Remote-Login für Root verbieten? – Empfohlen: y)
  4. Remove test database and access to it? (Test-Datenbank löschen? – Empfohlen: y)
  5. Reload privilege tables now? (Tabellen neu laden? – Empfohlen: y)

Zusammenfassung der Befehle

  1. sudo mysql
  2. ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'Passwort';
  3. FLUSH PRIVILEGES;
  4. exit;

Dein MySQL 8 Server ist nun mit einem Root-Passwort gesichert!

0