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.