如何在Magento 2中重置丢失的管理员密码?


42

我试图通过admin_user表中的Phpmyadmin重置管理员密码,但这似乎不起作用。同样在chrome上,加载管理页面时出现“此网页具有重定向循环”错误。


1
关于重定向,请确保如果启用了xdebug,则xdebug.max_nesting_level=200php.ini中存在。如果未设置,则可能会看到管理员登录页面(因为该页面上的嵌套级别低于默认值100),但是当您输入凭据并尝试登录时,无法呈现仪表板(嵌套级别高于默认值) 100个)。还要确保使用一些虚拟主机,而不是“ localhost”,以避免Cookie出现问题。
Alex Paliarush 2015年

仪表板图标/样式未正确加载/呈现不正确这是否归因于xdebug?你能如何共享设置的XDebug在php.ini中正确地
开发

xdebug.max_nesting_level=200如果启用了XDebug,只需将其添加到php.ini配置中即可。
Alex Paliarush 2015年


这个答案应该可以帮助magento.stackexchange.com/a/137562/27907并生成哈希密码,您可以使用xorbin.com/tools/sha256-hash-calculator
wk

Answers:


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“]'
Dev

1
magento的路径应该在“ bin / magento”之前,而不是在php之前。还要从实际命令中删除方括号。
Alex Paliarush 2015年

管理员用户创建成功,我使用创建的详细信息登录仪表板,但不起作用,请保留在同一登录页面上。
2015年

4
只有上帝知道为什么他们在这里放方括号...
MagenX

1
@MagenX-方括号是命令帮助消息的常规方式,用于告诉您这些参数是可选的实际上这是很标准的。
nevvermind 2016年

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

系统将提示您输入管理员用户名和该用户的新密码。

Username:admin
Password:123456
Password successfully changed

希望这可以帮助。


无法让它在我的Bitnami测试服务器中运行-SQL是我的唯一方法。
KolonUK

4

我讨厌记住长字符串bin / 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-magerun2n98-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'

我已经编辑了我的问题。如果忘记密码怎么办?
2015年

0

只需打开您的数据库访问权限,然后单击以下查询

更新admin_user SET密码= CONCAT(SHA2('yournewpassword',256),':xxxxxxx:1')WHERE username ='yourusername';

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.