Wie setze ich ein verlorenes Administratorkennwort in Magento 2 zurück?


42

Ich habe versucht, das Administratorkennwort über Phpmyadmin in der Tabelle admin_user zurückzusetzen, aber dies scheint nicht zu funktionieren. Auch auf Chrome erhalte ich den Fehler "Diese Webseite hat eine Umleitungsschleife", wenn die Admin-Seite geladen wird.


1
Stellen Sie in Bezug auf Weiterleitungen sicher, dass xdebug.max_nesting_level=200in Ihrer php.ini xdebug aktiviert ist . Wenn dies nicht festgelegt ist, wird möglicherweise die Anmeldeseite des Administrators angezeigt (da die Verschachtelungsebene auf dieser Seite unter dem Standardwert 100 liegt). Wenn Sie jedoch Anmeldeinformationen eingeben und versuchen, sich anzumelden, kann das Dashboard nicht gerendert werden (die Verschachtelungsebene ist höher als der Standardwert) 100 dort). Stellen Sie außerdem sicher, dass Sie einen virtuellen Host verwenden, nicht "localhost", um Probleme mit Cookies zu vermeiden.
Alex Paliarush

Dashboard-Symbole / -Stile wurden nicht richtig geladen / gerendert. Liegt dies an xdebug? Können Sie mitteilen, wie xdebug auf php.ini richtig eingerichtet wird
Dev

Fügen Sie einfach xdebug.max_nesting_level=200auf die Datei php.ini Config wenn Sie XDebug aktiviert.
Alex Paliarush


Diese Antwort soll helfen, magento.stackexchange.com/a/137562/27907 und um das gehashte Passwort zu generieren, können Sie xorbin.com/tools/sha256-hash-calculator
wk

Antworten:


88

Sie können Magento CLI verwenden, um mit dem folgenden Befehl einen neuen Administratorbenutzer zu erstellen. Anschließend können Sie das Kennwort Ihres ursprünglichen Benutzers ändern.

Führen Sie dies aus dem Stammverzeichnis Ihrer Magento-Installation aus:

php bin/magento admin:user:create --admin-user="admin" --admin-password="123123q" --admin-email="admin@example.com" --admin-firstname="Admin" --admin-lastname="Admin"

Kein anderer Weg ohne CLI? Ich habe versucht, dies zu tun, indem ich Magerun auf meinem Computer installiert habe (ich bin ein Neuling bei CLI). Mein Befehl lautet wie folgt: '<path_to_magento> php bin / magento admin: user: create [--admin-user = "dave"] [--admin-password = "admin123"] [--admin-email = "admin1 @ localhost.com "] [--admin-firstname =" dave "] [--admin-lastname =" maritus "] '
Dev

1
Der Pfad zu Magento sollte vor "bin / magento" und nicht vor PHP stehen. Entfernen Sie auch eckige Klammern vom tatsächlichen Befehl.
Alex Paliarush

Der Admin-Benutzer wurde erfolgreich erstellt. Ich habe die für die Anmeldung am Dashboard erstellten Details verwendet, aber es funktioniert nicht. Bleiben Sie auf der gleichen Anmeldeseite.
Dev

4
Nur Gott weiß, warum sie dort eckige Klammern setzen ...
MagenX

1
@MagenX - Eckige Klammern sind eine herkömmliche Methode, um Hilfemeldungen eines Befehls anzuzeigen, dass diese Argumente optional sind . Es ist eigentlich ziemlich normal .
Nevvermind

29

Führen Sie die folgende Abfrage aus, um die Datenbank zu leiten.

Ein Beispiel ist das Zurücksetzen des Passworts für den Administrator .

UPDATE admin_user SET `password` = SHA2 (' NewPassword ', 256) WHERE` username` = ' admin ';

NewPassword : Ersetzen Sie es durch Ihr Passwort.

Ich hoffe es wird für dich funktionieren. Lassen Sie mich wissen, wenn Sie irgendwelche Schwierigkeiten haben.


FYI; CONCAT und Salz werden nicht benötigt. v. 2.1.7
simonthesorcerer

Funktionierte nicht für Magento 2.3, benötigt Salz usw.
Qtax

1
Achten Sie auch auf das Feld "lock_expires", wenn Sie das gleiche falsche Passwort wiederholt haben ...
KolonUK

15

Es sollte keine Gleichheitszeichen oder eckigen Klammern wie diese geben:

php bin/magento admin:user:create --admin-user mys_username --admin-password mypass123 --admin-email my@email.com --admin-firstname john --admin-lastname cage

Dies ist die einzige, die für mich
funktioniert

10

Führen Sie die folgenden SQL-Abfragen aus, um das Administratorkennwort zurückzusetzen:

SET @salt = MD5(UNIX_TIMESTAMP());
UPDATE admin_user SET password = CONCAT(SHA2(CONCAT(@salt, 'MyNewPassword'), 256), ':', @salt, ':1') WHERE username = 'admin';

Nur so konnte ich die Passwortanforderungen in Magento 2.3 umgehen, um ein einfaches Admin-Passwort für die Entwicklung festlegen zu können. n98-magerun2In 3.0.4 konnte man die Administrator-Passwortanforderungen nicht umgehen.
Qtax

Arbeitet in Magento 2.2.5 und setzt "lock_expires" auf NULL
KolonUK

9

Es gibt ein sehr schönes Tool namens N98-Magerun

Grundsätzlich laden Sie es direkt in das Stammverzeichnis Ihres Magento-Projekts herunter

wget https://files.magerun.net/n98-magerun2.phar

Ausführbare Berechtigungen als Nächstes festlegen (nur für UNIX-Benutzer)

chmod +x ./n98-magerun2.phar

Wenn du jetzt rennst

php n98-magerun2.phar

Sie erhalten eine Liste aller verfügbaren Befehle, die vom Tool angeboten werden.

Um ein vergessenes Administrator-Passwort zurückzusetzen, müssen wir zuerst den Benutzernamen des Administrator-Benutzers ermitteln, damit wir es ausführen können

php n98-magerun2.phar admin:user:list

Dadurch erhalten Sie eine Liste aller verfügbaren Administratorbenutzer, die Ausgabe sieht ungefähr so ​​aus

+----+-----------------+-------------------------------+--------+
| id | username        | email                         | status |
+----+-----------------+-------------------------------+--------+
| 1  | admin           | admin@example.com             | active |
| 2  | nextadmin       | nextadmin@example.com         | active |
+----+-----------------+-------------------------------+--------+

Nun setzen wir das Passwort zurück

php n98-magerun2.phar admin:user:change-password

Sie werden aufgefordert, den Benutzernamen des Administrators und das neue Kennwort für diesen Benutzer einzugeben.

Username:admin
Password:123456
Password successfully changed

Hoffe das hilft.


Auf meinem Bitnami-Testserver konnte dies nicht ausgeführt werden - SQL war der einzige Weg für mich.
KolonUK

4

Ich hasse es, mich an lange Schnurbehälter / Magento zu erinnern ...

Hier ist die Lösung für jeden, der etwas anfasst:

Gib diesen Code in die Datei pub / index.php ein

\Magento\Framework\App\ObjectManager::getInstance()->get("\Magento\Framework\Encryption\Encryptor")->getHash("yourpass");

Schauen Sie sich die Fußzeile einer Seite an: Bildbeschreibung hier eingeben

Kopieren Sie diesen Code und gehen Sie zu phpmyadmin:

update admin_user set password = '<code above>' where username='admin';

Übrigens. Dies ist eine Frage zum Zurücksetzen des Passworts, wenn Sie admin: user: create verwenden.


2
Dies würde wirklich nicht sicher sein , in einem öffentlich offen Website zu tun ... Sie können auch herunterladen n98-magerun2 und laufen n98-magerun2.phar dev:consoleund den Code dort ausführen: $di->get("\Magento\Framework\Encryption\Encryptor")->getHash("yourpass");oder Verwendungn98-magerun2.phar admin:user:change-password
7ochem

2

Bezogen auf Antwort von Alex klappt es mit einer kleinen Modifikation. Sie müssen in den Ordner der M2-Installation navigieren und den folgenden Code ausführen:

php bin/magento admin:user:create --admin-user=admin --admin-password=admin123 --admin-email=admin@magento.tld --admin-firstname=admin --admin-lastname=admin

Sie brauchen nicht /vor dem binOrdner, aber Sie brauchen phpBefehl vor dem ganzen "Satz".

Die Pass-Generierung hat bei mir funktioniert, aber die Admin-Seite hat mich nicht eingeloggt: /


0
 1. login to magento 2 admin.
 2. Go to system > All Users.
 3. Select your User
 4. reset password from 'User Info' > 'Account Information'

Ich habe meine Frage bearbeitet. Was passiert, wenn wir ein Passwort verloren haben?
Dev

0

Öffnen Sie einfach Ihren Datenbankzugriff und klicken Sie auf die folgende Abfrage

UPDATE admin_user SET password = CONCAT (SHA2 ('yournewpassword', 256), ': xxxxxxx: 1') WHERE username = 'yourusername';

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.