Es macht mich immer noch wahnsinnig, dass es MySQL nichts ausmacht, Passwörter in der Befehlszeile und in Protokollen zu verschleiern. Und das ist der einzige Grund, warum ich eine Antwort hinzufüge, anstatt nur die Antwort von @Gilles zu kommentieren.
Also, natürlich, Sie könnten einfach als Administrator bei MySQL anmelden und ein neues Kennwort für Ihren blayo-Benutzer festlegen, wie von @patrix vorgeschlagen.
Die Standardmethode hierfür ist jedoch die Verwendung der Funktion password () von MySQL, die ein Klartext-Passwort als Argument verwendet (ernst gemeint?).
Wenn Sie dies tun, belassen Sie die Klartext-Version Ihres MySQL-Benutzerpassworts in Ihrem Bash-Verlauf und in Ihren MySQL-Protokollen, damit jeder, der Zugriff auf diese Protokolldateien hat, später darauf zugreifen kann.
Wäre es nicht besser, ein kleines Dienstprogramm zu haben, das Sie zur Eingabe des Kennworts auffordert, ohne es auf dem Bildschirm oder in Ihren Protokollen wiederzugeben, und dann den resultierenden MySQL-kompatiblen Hash bereitzustellen?
Wenn Sie also die Antwort von @ Gilles ein wenig ändern, wie wäre es mit einem kleinen Shell-Skript, das wie folgt Python verwendet. Sie können dies leicht ändern, um eine SQL-Anweisung für Ihre MySQL-Datenbank auszuführen und das Kennwort gleichzeitig festzulegen. Aber auch ohne dies zu tun, kopieren Sie den resultierenden Hash und fügen Sie ihn in eine SQL-Anweisung ein, um die Benutzertabelle zu aktualisieren:
#!/bin/bash
mysqlpwd=$(/usr/bin/python -c 'from hashlib import sha1; import getpass; print "*" + sha1(sha1(getpass.getpass("New MySQL Password:")).digest()).hexdigest()')
echo $mysqlpwd
blayo
? Das ist definitiv schneller, als Billionen möglicher Zeichenkombinationen zu durchsuchen, um die richtige zu finden.