Làm cách nào để thiết lập lại mật khẩu quản trị viên bị mất trong Magento 2?


42

Tôi đã cố gắng đặt lại mật khẩu quản trị viên thông qua Phpmyadmin trong bảng admin_user nhưng điều này dường như không hoạt động. Ngoài ra trên chrome tôi gặp lỗi "Trang web này có vòng lặp chuyển hướng" khi tải trang quản trị.


1
Về chuyển hướng, hãy đảm bảo rằng nếu bạn đã bật xdebug, thì có xdebug.max_nesting_level=200trong php.ini của bạn. Nếu nó không được đặt, có thể bạn sẽ thấy trang đăng nhập của quản trị viên (vì mức lồng nhau nhỏ hơn 100 mặc định trên trang đó), nhưng khi bạn nhập thông tin đăng nhập và cố gắng đăng nhập, bảng điều khiển không thể được hiển thị (mức lồng nhau nhiều hơn mặc định 100 đó). Ngoài ra, hãy đảm bảo sử dụng một số máy chủ ảo, không phải "localhost", để tránh các sự cố với cookie.
Alex Paliarush

Biểu tượng / kiểu bảng điều khiển không được tải / kết xuất đúng cách đây có phải là do xdebug không? Bạn có thể chia sẻ cách thiết lập xdebug trên php.ini không
Dev

Chỉ cần thêm xdebug.max_nesting_level=200vào cấu hình php.ini của bạn nếu bạn đã bật XDebug.
Alex Paliarush


câu trả lời này sẽ giúp magento.stackexchange.com/a/137562/27907 và để tạo mật khẩu băm, bạn có thể sử dụng xorbin.com/tools/sha256-hash-calculator
wk

Câu trả lời:


88

Bạn có thể sử dụng Magento CLI để tạo người dùng quản trị viên mới bằng lệnh sau, sau đó bạn có thể đi và thay đổi mật khẩu của người dùng ban đầu của mình.

Thực hiện điều này từ thư mục gốc của bản cài đặt magento của bạn:

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

Không có cách nào khác mà không có CLI? Tôi đã cố gắng làm điều đó bằng cách cài đặt Magerun trên máy của mình (tôi là người mới chơi CLI). Lệnh của tôi giống như bên dưới, '<path_to_magento> php bin / magento admin: user: tạo [--admin-user = "dave"] [--admin-password = "admin123"] [--admin-email = "admin1 @ localhost.com "] [--admin-firstname =" dave "] [--admin-lastname =" maritus "] '
Dev

1
Đường dẫn đến magento phải đi trước "bin / magento", không phải trước php. Cũng loại bỏ dấu ngoặc vuông từ lệnh thực tế.
Alex Paliarush

Người dùng quản trị đã tạo thành công, tôi đã sử dụng các chi tiết được tạo để đăng nhập bảng điều khiển nhưng nó không hoạt động, vẫn ở trên cùng một trang đăng nhập.
Dev

4
chỉ có chúa mới biết tại sao họ đặt dấu ngoặc vuông ở đó ...
MagenX

1
@MagenX - Dấu ngoặc vuông là một cách thông thường cho các thông báo trợ giúp của lệnh để cho bạn biết rằng các đối số đó là tùy chọn . Nó thực sự khá chuẩn .
nevvermind

29

Chạy bên dưới truy vấn để cơ sở dữ liệu trực tiếp.

Một ví dụ là để thiết lập lại mật khẩu cho người dùng quản trị .

CẬP NHẬT admin_user SET `password` = SHA2 (' NewPassword ', 256) WHERE` username` = ' admin ';

NewPassword : Thay thế nó bằng mật khẩu của bạn.

Tôi hy vọng nó sẽ làm việc cho bạn. Hãy cho tôi biết nếu bạn gặp khó khăn.


FYI; CONCAT và muối là không cần thiết. câu 2.1.7
simonthesorcerer

Không làm việc cho Magento 2.3, cần muối, v.v.
Qtax

1
đồng thời, hãy cẩn thận với trường "lock_Exires" nếu bạn lặp lại thử cùng một mật khẩu sai ...
KolonUK

15

Không nên có dấu bằng hoặc dấu ngoặc vuông như thế này:

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

Đây là người duy nhất làm việc cho tôi
jfoutch

10

Chạy các truy vấn SQL sau để đặt lại mật khẩu quản trị viên:

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

Là cách duy nhất tôi có thể giải quyết các yêu cầu về mật khẩu trong Magento 2.3, để có thể đặt mật khẩu quản trị viên đơn giản để phát triển. n98-magerun23.0.4 không cho phép một người tránh các yêu cầu mật khẩu quản trị viên.
Qtax

Đã hoạt động trong Magento 2.2.5, cộng với cài đặt "lock_Exires" thành NULL
KolonUK

9

Có một công cụ rất hay được gọi là N98-Magerun

Về cơ bản, bạn trực tiếp tải nó xuống thư mục gốc của dự án Magento của bạn

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

Tiếp theo thiết lập quyền thực thi (chỉ dành cho người dùng UNIX)

chmod +x ./n98-magerun2.phar

Bây giờ khi bạn chạy

php n98-magerun2.phar

Bạn sẽ nhận được một danh sách tất cả các lệnh có sẵn được cung cấp bởi công cụ.

Bây giờ để đặt lại mật khẩu người dùng quản trị viên bị quên trước tiên, chúng tôi cần lấy tên người dùng của người dùng quản trị viên, để có được rằng chúng tôi có thể chạy

php n98-magerun2.phar admin:user:list

Điều này sẽ cung cấp cho bạn một danh sách tất cả người dùng quản trị viên có sẵn, đầu ra sẽ trông giống như

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

Bây giờ để thiết lập lại mật khẩu, chúng tôi làm

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

Bạn sẽ được nhắc nhập tên người dùng của quản trị viên và mật khẩu mới cho người dùng đó.

Username:admin
Password:123456
Password successfully changed

Hi vọng điêu nay co ich.


Không thể chạy cái này trong máy chủ thử nghiệm Bitnami của tôi - SQL là cách duy nhất để sử dụng cho tôi.
KolonUK

4

Tôi ghét nhớ bin / magento chuỗi dài ...

Đây là giải pháp cho bất cứ ai thích chạm vào:

đặt mã này trong pub / index.php

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

Nhìn vào phần chân trang của bất kỳ trang nào: nhập mô tả hình ảnh ở đây

Sao chép mã đó và truy cập phpmyadmin:

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

BTW. Đây là câu hỏi đặt lại mật khẩu nếu bạn sử dụng admin: user: tạo nó để thiết lập lại hoặc tạo nhưng Uhm ... Không chính xác.


2
Điều này sẽ không thực sự an toàn trong một trang web mở công khai ... Bạn cũng có thể tải xuống n98-magerun2 và chạy n98-magerun2.phar dev:consolevà thực thi mã ở đó: $di->get("\Magento\Framework\Encryption\Encryptor")->getHash("yourpass");hoặc chỉ sử dụngn98-magerun2.phar admin:user:change-password
7ochem

2

Đề cập đến câu trả lời của Alex, nó hoạt động với một chút sửa đổi. Bạn phải điều hướng vào thư mục cài đặt M2, sau đó chạy mã bên dưới:

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

Bạn không cần /trước binthư mục, nhưng bạn cần phplệnh trước toàn bộ "câu".

Thế hệ pass hoạt động với tôi, nhưng trang quản trị đã không đăng nhập cho tôi: /


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'

Tôi đã chỉnh sửa câu hỏi của tôi. Nếu chúng ta làm gì khi bị mất mật khẩu.
Dev

0

Chỉ cần mở quyền truy cập cơ sở dữ liệu của bạn và nhấn truy vấn bên dưới

CẬP NHẬT admin_user SET password = CONCAT (SHA2 ('yournewpassword', 256), ': xxxxxxx: 1') WHERE username = 'yourusername';

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.