Nadal zastanawia mnie, że MySQL nie zawraca sobie głowy zaciemnianiem haseł w wierszu poleceń i dziennikach. I to jest jedyny powód, dla którego dodaję odpowiedź zamiast komentować odpowiedź @Gilles.
Oczywiście, że mógłbyś po prostu zalogować się jako administrator MySQL i ustawić nowe hasło dla blayo użytkownika, jak @patrix sugerowane.
Jednak standardowym sposobem na to jest użycie funkcji hasła () MySQL, która traktuje hasło w postaci zwykłego tekstu jako argument (poważnie?).
Jeśli to zrobisz, pozostawiasz wersję tekstową hasła użytkownika MySQL w swojej historii bash i w logach MySQL, w celu późniejszego łatwego wyszukiwania przez każdego, kto uzyska dostęp do tych plików dziennika.
Czy nie byłoby lepiej mieć małe narzędzie, które pytałoby o hasło, bez echa na ekranie lub w dziennikach, a następnie zapewnia wynikowy skrót zgodny z MySQL?
Tak więc, modyfikując nieco odpowiedź @ Gilles, co powiesz na mały skrypt powłoki korzystający z Pythona, jak poniżej. Możesz to łatwo zmodyfikować, aby uruchomić instrukcję SQL w bazie danych MySQL i ustawić hasło jednocześnie. Ale nawet nie posuwając się tak daleko, po prostu skopiuj i wklej wynikowy skrót do instrukcji SQL, aby zaktualizować tabelę użytkowników:
#!/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
? Jest to zdecydowanie szybsze niż przeglądanie bilionów możliwych kombinacji postaci, aby znaleźć właściwą.