Antworten:
Stoppen Sie den MySQL-Prozess.
Starten Sie den MySQL-Prozess mit der Option --skip-grant-tables.
Starten Sie den MySQL-Konsolenclient mit der Option -u root.
Listen Sie alle Benutzer auf.
SELECT * FROM mysql.user;
Passwort zurücksetzen;
UPDATE mysql.user SET Password=PASSWORD('[password]') WHERE User='[username]';
Aber NICHT VERGESSEN zu
Stoppen Sie den MySQL-Prozess
Starten Sie den MySQL-Prozess normal (dh ohne die Option --skip-grant-tables).
wenn du fertig bist. Andernfalls kann die Sicherheit Ihrer Datenbank beeinträchtigt werden.
dpkg-reconfigure mysql-server-5.5
Befehls zum Zurücksetzen des MySQL-Root-Passworts?
-u
Starten des Servers ignoriert wird --skip-grant-tables
.
mysql.user
aufgerufen password
. Verwenden Sie authentication_string
stattdessen.
Leider ist Ihr Benutzerpasswort nicht abrufbar. Es wurde mit einem Einweg-Hash gehasht, der, wenn Sie nicht wissen, irreversibel ist. Ich empfehle Xenph Yan oben zu verwenden und einfach ein neues zu erstellen.
Sie können auch das folgende Verfahren aus dem Handbuch verwenden, um das Kennwort für alle MySQL- Root- Konten unter Windows zurückzusetzen:
Startmenü -> Systemsteuerung -> Verwaltung -> Dienste
Suchen Sie dann den MySQL-Dienst in der Liste und beenden Sie ihn. Wenn Ihr Server nicht als Dienst ausgeführt wird, müssen Sie möglicherweise den Task-Manager verwenden, um das Beenden zu erzwingen.
Erstellen Sie eine Textdatei und platzieren Sie die folgenden Anweisungen darin. Ersetzen Sie das Passwort durch das Passwort, das Sie verwenden möchten.
UPDATE mysql.user SET Password=PASSWORD('MyNewPass') WHERE User='root';
FLUSH PRIVILEGES;
Die Anweisungen UPDATE und FLUSH müssen jeweils in eine einzelne Zeile geschrieben werden. Die UPDATE- Anweisung setzt das Kennwort für alle vorhandenen Stammkonten zurück , und die FLUSH- Anweisung weist den Server an, die Grant-Tabellen erneut in den Speicher zu laden.
Öffnen Sie ein Konsolenfenster, um zur Eingabeaufforderung zu gelangen:
Startmenü -> Ausführen -> cmd
Starten Sie den MySQL-Server mit der speziellen Option --init-file :
C:\> C:\mysql\bin\mysqld-nt --init-file = C:\mysql-init.txt
Wenn Sie MySQL an einem anderen Speicherort als C: \ mysql installiert haben , passen Sie den Befehl entsprechend an.
Der Server führt den Inhalt der Datei aus, die beim Start durch die Option --init-file benannt wurde , und ändert jeden Stamm Kennwort für das Konto.
Sie können dem Befehl auch die Option --console hinzufügen, wenn die Serverausgabe im Konsolenfenster und nicht in einer Protokolldatei angezeigt werden soll.
Wenn Sie MySQL mit dem MySQL-Installationsassistenten installiert haben, müssen Sie möglicherweise eine Option --defaults-file angeben :
C:\> "C:\Program Files\MySQL\MySQL Server 5.0\bin\mysqld-nt.exe" --defaults-file="C:\Program Files\MySQL\MySQL Server 5.0\my.ini" --init-file=C:\mysql-init.txt
Die entsprechende Einstellung für die Datei --defaults-file finden Sie im Services Manager:
Startmenü -> Systemsteuerung -> Verwaltung -> Dienste
Suchen Sie den MySQL-Dienst in der Liste, klicken Sie mit der rechten Maustaste darauf und wählen Sie die Option Eigenschaften. Das Feld Pfad zur ausführbaren Datei enthält die Einstellung --defaults-file .
Sie sollten nun in der Lage sein, mit dem neuen Kennwort eine Verbindung zu MySQL als Root herzustellen.
mysqld-nt
statt mysqld
?
Eine Verbesserung der nützlichsten Antwort hier:
1] Der
MySQL-Server muss nicht neu gestartet werden. 2] Sicherheitsbedenken für einen MySQL-Server, der mit einem Netzwerk verbunden ist
Der MySQL-Server muss nicht neu gestartet werden.
Verwenden Sie FLUSH PRIVILEGES;
nach dem Update die Anweisung mysql.user für die Kennwortänderung.
Die FLUSH-Anweisung weist den Server an, die Grant-Tabellen erneut in den Speicher zu laden, damit er die Kennwortänderung bemerkt.
Damit --skip-grant-options
kann jeder ohne Passwort und mit allen Berechtigungen eine Verbindung herstellen. Da dies unsicher ist, möchten Sie vielleicht
Verwenden Sie --skip-grant-tables in Verbindung mit --skip-network , um zu verhindern, dass Remoteclients eine Verbindung herstellen.
from: reference: resetting-permissions-generic
mysql.user
? Oft ist das jedoch nicht der Fall.
Obwohl Sie ein MySQL-Kennwort nicht direkt ohne Bruteforcing wiederherstellen können, gibt es möglicherweise einen anderen Weg: Wenn Sie MySQL Workbench verwendet haben, um eine Verbindung zur Datenbank herzustellen, und die Anmeldeinformationen im "Tresor" gespeichert haben, sind Sie goldrichtig.
Unter Windows werden die Anmeldeinformationen in % APPDATA% \ MySQL \ Workbench \ workbench_user_data.dat gespeichert - verschlüsselt mit CryptProtectData (ohne zusätzliche Entropie). Das Entschlüsseln ist einfach:
std::vector<unsigned char> decrypt(BYTE *input, size_t length) {
DATA_BLOB inblob { length, input };
DATA_BLOB outblob;
if (!CryptUnprotectData(&inblob, NULL, NULL, NULL, NULL, CRYPTPROTECT_UI_FORBIDDEN, &outblob)) {
throw std::runtime_error("Couldn't decrypt");
}
std::vector<unsigned char> output(length);
memcpy(&output[0], outblob.pbData, outblob.cbData);
return output;
}
Oder Sie können diesen DonationCoder-Thread nach Quelle + ausführbarer Datei einer schnellen und schmutzigen Implementierung durchsuchen.
Führen Sie den folgenden Befehl im Terminal aus, um eine Verbindung zum DBMS herzustellen (Sie benötigen Root-Zugriff):
sudo mysql -u root -p;
Führen Sie das Update-Passwort des Zielbenutzers aus (in meinem Beispiel lautet der Benutzername mousavi
und das Passwort muss sein 123456
):
UPDATE mysql.user SET authentication_string=PASSWORD('123456') WHERE user='mousavi';
Zu diesem Zeitpunkt müssen Sie eine Spülung durchführen, um die Änderungen zu übernehmen:
FLUSH PRIVILEGES;
Getan! Sie haben es ohne Unterbrechung oder Neustart des MySQL-Dienstes getan.
Wenn Sie Root-Zugriff auf den Server haben, auf dem MySQL ausgeführt wird, sollten Sie den MySQL-Server mit diesem Befehl stoppen
sudo service mysql stop
Starten Sie nun MySQL mit diesem Befehl
sudo /usr/sbin/mysqld --skip-grant-tables --skip-networking &
Jetzt können Sie sich mit mysql anmelden
sudo mysql
FLUSH PRIVILEGES;
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('MyNewPass');
Vollständige Anweisungen finden Sie hier http://www.techmatterz.com/recover-mysql-root-password/
Melden Sie sich unter Windows Cmd mit dem vorhandenen Benutzer bei MySQL an:
mysql -u Benutzername -p
Passwort eingeben: ****
Führen Sie dann den folgenden Befehl aus:
mysql> SELECT * FROM mysql.user;
Nach dieser Kopie verschlüsselt md5 Passwort für den entsprechenden Benutzer und es gibt mehrere Online-Passwort entschlüsselte Anwendung im Web verfügbar. Verwenden Sie dieses Entschlüsselungskennwort und verwenden Sie es für die nächste Anmeldung. oder aktualisieren Sie das Benutzerkennwort mit dem fließenden Befehl:
mysql> UPDATE mysql.user SET Password=PASSWORD('[password]') WHERE User='[username]';
Melden Sie sich dann mit dem neuen Passwort und Benutzer an.
Wenn Sie ODBC eingerichtet haben, können Sie das Kennwort aus der ODBC-Konfigurationsdatei abrufen. Dies befindet sich in /etc/odbc.ini für Linux und im Ordner Software / ODBC in der Registrierung unter Windows (es gibt mehrere - möglicherweise ist eine Suche erforderlich).
Speicher die Datei. In diesem Beispiel heißt die Datei C: \ mysql-init.txt. Es werden administrative Berechtigungen zum Speichern der Datei abgefragt
Obwohl eine strenge, logische, computerwissenschaftliche Interpretation der Op-Frage erforderlich wäre sowohl "Wie ich meinen MySQL-Benutzernamen ab" als auch "Passwort" dachte ich, dass es für jemanden nützlich sein könnte, auch die OP- Interpretation anzusprechen . Mit anderen Worten ...
1) Wie rufe ich meinen MySQL-Benutzernamen ab?
ODER
2) Passwort
Diese letztere Bedingung scheint bereits ausführlich behandelt worden zu sein, so dass ich mich nicht darum kümmern werde. Das Folgende ist eine Lösung für den Fall "Wie erhalte ich meinen MySQL-Benutzernamen" allein. HIH.
Um Ihren MySQL-Benutzernamen zu finden, führen Sie die folgenden Befehle in der MySQL-Shell aus ...
SELECT User FROM mysql.user;
Es wird eine Tabelle aller MySQL-Benutzer gedruckt.