Los geht ‚ s. Sie haben gerade eine virtuelle Maschine gestartet, um einige Tests durchzuführen, MySQL mit Ihrem bevorzugten Paketmanager installiert, den Server gestartet und keine Verbindung hergestellt:

$ mysql --user=root
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)

Seit Version 5.,7, MySQL secure-by-default“:

  • ein zufälliges root-Kennwort wird erzeugt bei der installation; bitte Lesen Sie dieses Passwort aus der server-log –
  • müssen Sie dieses Passwort ändern, die erste Zeit Sie verbinden
  • Sie können nicht verwenden Sie ein leeres Kennwort, da der validate_password plugin

Dies ist eine gute security-wise. Wenn Sie jedoch nur MySQL zu Ihren eigenen Tests auf einer lokalen VM installieren, kann dies sehr ärgerlich werden.

Um das MySQL-Root-Passwort zu entfernen, führen Sie einfach das folgende Skript direkt nach der Installation und dem Starten des MySQL-Servers aus:

Auf MySQL 5.,7:

On MySQL 8.0:

Note: you must execute this script as root.,

Das Skript führt folgende Aktionen aus:

  • liest das temporäre Passwort aus der Protokolldatei
  • ändert dieses Passwort in ein anderes temporäres Passwort, das die validate_password checks
  • uninstalls the validate_password plugin (or component in MySQL 8)
  • sets a blank password

You can stellen Sie nun eine Verbindung ohne Passwort her:

Achten Sie darauf, dass Ihre MySQL-Installation dadurch ungesichert bleibt.,

Eine sichere Alternative

Wenn Sie MySQL hauptsächlich über die Befehlszeile verwenden, können Sie das root – Konto durch ein Kennwort geschützt halten und gleichzeitig die Unannehmlichkeiten vermeiden, das Kennwort in der Befehlszeile angeben zu müssen.

Erstellen Sie einfach eine ~/.my.cnf Datei:


user = root
password = xxx

Sie können jetzt einfach mysql eingeben und der MySQL-Client meldet sich automatisch mit diesen Anmeldeinformationen an.