Magento 2で失われた管理者パスワードをリセットする方法は?


42

admin_userテーブルのPhpmyadminを使用して管理者パスワードをリセットしようとしましたが、これは機能しないようです。また、Chromeで管理ページを読み込むときに「このWebページにはリダイレクトループがあります」というエラーが表示されます。


1
リダイレクトに関しては、xdebugが有効になっている場合xdebug.max_nesting_level=200、php.iniにあることを確認してください。設定されていない場合、管理ログインページが表示される可能性があります(そのページのネストレベルはデフォルトの100より小さいため)そこに100)。また、「localhost」ではなく、仮想ホストを使用して、Cookieに関する問題を回避してください。
アレックスPaliarush

ダッシュボードのアイコン/スタイルが正しくロード/レンダリングされなかったのは、xdebugが原因ですか?php.iniでxdebugを適切にセットアップする方法を共有できますか
開発者

xdebug.max_nesting_level=200XDebugを有効にしている場合は、php.ini構成に追加するだけです。
アレックスPaliarush


この回答はmagento.stackexchange.com/a/137562/27907に役立ち、ハッシュ化されたパスワードを生成するにはxorbin.com/tools/sha256-hash-calculator
wk

回答:


88

次のコマンドでMagento CLIを使用して新しい管理ユーザーを作成し、元のユーザーのパスワードを変更できます。

magentoインストールのルートからこれを実行します。

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

CLIなしで他の方法はありませんか?私は自分のマシンにMagerunをインストールすることでそれを試みました(私はCLIの初心者です)。私のコマンドは次のようなものです、 '<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 "] '
開発

1
magentoへのパスは、phpの前ではなく、「bin / magento」の前に移動する必要があります。また、実際のコマンドから角括弧を削除します。
アレックスPaliarush

管理者ユーザーが正常に作成され、作成された詳細を使用してダッシュボードにログインしましたが、機能しません。同じログインページにとどまります。
開発者

4
神だけが角括弧を置く理由を知っている
...-MagenX

1
@MagenX-角かっこは、コマンドのヘルプメッセージがこれらの引数がオプションであることを通知する従来の方法です。それは実際にはかなり標準です。
-nevvermind

29

以下のクエリを実行して、データベースを管理します。

例は、管理ユーザーのパスワードのリセットです。

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

NewPassword:パスワードに置き換えます。

私はそれがあなたのために働くことを望みます。何か問題があれば教えてください。


ご参考までに; CONCATと塩は必要ありません。V 2.1.7。
simonthesorcerer

Magento 2.3で動作しなかった、塩などが必要
Qtax

1
また、同じ間違ったパスワードを繰り返し試行した場合は、「lock_expires」フィールドに注意してください...
KolonUK

15

次のような等号または角括弧はありません。

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

これは私のために働いた唯一のものです
-jfoutch

10

次のSQLクエリを実行して、管理者パスワードをリセットします。

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

Magento 2.3のパスワード要件を回避して、開発用の単純な管理者パスワードを設定できるようにする唯一の方法でした。n98-magerun23.0.4では、管理者パスワードの要件を回避できませんでした。
Qtax

Magento 2.2.5で動作し、さらに「lock_expires」をNULLに設定
KolonUK

9

N98-Magerunと呼ばれる非常に素晴らしいツールがあります

基本的に、Magentoプロジェクトのルートに直接ダウンロードします

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

次に実行可能権限を設定します(UNIXユーザーのみ)

chmod +x ./n98-magerun2.phar

実行すると

php n98-magerun2.phar

ツールによって提供されるすべての利用可能なコマンドのリストを取得します。

忘れてしまった管理者ユーザーのパスワードをリセットするには、まず管理者ユーザーのユーザー名を取得する必要があります。

php n98-magerun2.phar admin:user:list

これにより、利用可能なすべての管理ユーザーのリストが表示され、出力は次のようになります

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

次に、パスワードをリセットします

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

adminユーザーのユーザー名とそのユーザーの新しいパスワードの入力を求められます。

Username:admin
Password:123456
Password successfully changed

お役に立てれば。


Bitnamiテストサーバーでこれを実行できませんでした。SQLが唯一の方法でした。
KolonUK

4

私は長い文字列ビン/ magentoを覚えて嫌い...

触るのが好きな人のためのソリューションは次のとおりです。

このコードをpub / index.phpに配置します

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

任意のページのフッターを見てください: ここに画像の説明を入力してください

そのコードをコピーして、phpmyadminにアクセスします。

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

ところで。admin:user:createを使用する場合、これはパスワードのリセットの質問です。


2
これは本当に公にオープンウェブサイトで行うことは安全ではないでしょう...あなたもダウンロードできるN98-magerun2と実行をn98-magerun2.phar dev:consoleし、そこにコードを実行します$di->get("\Magento\Framework\Encryption\Encryptor")->getHash("yourpass");か、単に使用n98-magerun2.phar admin:user:change-password
7ochem

2

アレックスの答えを参照すると、少し修正して動作します。M2インストールのフォルダーに移動して、以下のコードを実行する必要があります。

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

フォルダの/前に必要はありませんが、「文」全体の前にコマンドbinが必要phpです。

パスの生成はうまくいきましたが、管理ページにログインできませんでした:/


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'

質問を編集しました。パスワードを紛失した場合にどうすればいいですか。
開発

0

データベースアクセスを開いて、以下のクエリを実行するだけです

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

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.