【问题标题】:after installing magento in my local machine I forgot admin password在我的本地机器上安装 magento 后,我忘记了管理员密码
【发布时间】:2013-06-03 17:01:06
【问题描述】:

在我的本地机器上安装 magento 后,我忘记了我给的管理员密码。 我无法登录我的管理区域如何重置密码

我已经阅读了这篇文章http://www.atwix.com/magento/reset-admin-password-mysql/,但它对我不起作用。或者可能是我没有得到这个

请帮助我是 Magento 的初学者

【问题讨论】:

  • 你找到salt变量的正确值了吗?
  • 你在这篇文章中没有得到什么?
  • 我得到了解决方案 app/code/core/Mage/Core/Model/Session/Abstract/Varien.php 我们要评论 89,90,91 行
  • 没用@SujithWayanad

标签: php magento password-recovery


【解决方案1】:

转到:

1 - 登录到 PhpMyadmin 。

2 - 跳转到 Magento 的数据库。

3 - 转到 admin_user 表并编辑该表。

4 - 输入“密码”(您想要的)并从功能下拉列表中选择 MD5(重要)。

这适用于 CE 和 EE 最新版本(在两个最新版本中都经过测试),无需更改核心文件。

【讨论】:

  • 我已经尝试过,我认为它在登录后工作我没有收到错误消息,但页面再次重定向到相同的登录而不是管理页面
  • 如果您正在使用 WAMP 的本地计算机上工作,请注释掉 app/code/core/Mage/Core/Model/Session/Abstract/Varien.php 中与 $cookieParams 相关的所有行(对我来说,这是 Magento EE 1.13 的第 88 到 108 行)
  • 此方法不再适用于新版本的 magentro
  • @EmilStewart:谢谢,这是真正的答案。在较新的版本上工作正常。
【解决方案2】:

这将被证明是一个很好的阅读资源:http://www.magentocommerce.com/wiki/recover/resetting-admin-password

SELECT * FROM admin_user;

然后,在提供的列表中找到您要修改的用户名——本例中为“admin”。然后,要更新密码,请键入:

UPDATE admin_user SET password=CONCAT(MD5('qXpassword'), ':qX') WHERE username='admin';

‘qX’ 将被更改为您想要的任何内容,‘密码’也是如此

【讨论】:

  • 只是为了澄清一点:qX 将是盐,密码将是最终密码。
  • 请务必注意,在 CE 版本 1.8 和 1.9 之间(在 EE 中推测为 1.3 到 1.4),哈希长度从 2 个字符(如上例)增加到 32 个字符。
【解决方案3】:

大多数情况下,当我们在本地计算机(XAMPP、WAMPP)上安装 Magento 社区时,我们似乎无法从后端以管理员身份登录。系统会提示我们输入了错误的密码,但事实并非如此。

当我遇到这个问题时,我尝试通过以下方法(在 SQLyog 中)重置密码。

UPDATE admin_user 
SET password=CONCAT(MD5('qXpassword'), ':qX') 
WHERE username='admin';

“密码”应该设置为您想要的新密码,“qX”可以是您喜欢的任何随机字符。

但是我们还是不能登录。一开始我还以为这个方法是错误的方法。同时,“管理员”密码肯定已更改。但是为什么还是不能登录呢?

也许我们输入了正确的用户名和密码,但还是无法登录。

使用 Notepad ++ 打开和编辑核心文件:app/code/core/Mage/Core/Model/Session/Abstract/Varien.php,在您的 magento 目录中并注释以下行:

$cookieParams = array(
            'lifetime' => $cookie->getLifetime(),
            'path'     => $cookie->getPath() //,
            // 'domain'   => $cookie->getConfigDomain(),
            // 'secure'   => $cookie->isSecure(),
            // 'httponly' => $cookie->getHttponly()
        );

再试一次,你应该可以从后台以管理员身份登录了。

问题是 Localhost 或“127.0.0.1”不是真实域,浏览器只允许真实域存储 cookie,这就是登录停止并且用户名或密码无效的原因。

【讨论】:

  • 太棒了!谢谢!我已经更改并重新安装了几次magento,只是为了找出这个解决方案。该死!
  • 这对生产来说是件坏事吗?您是否需要在开发和生产之间来回切换这些 cmets?有没有更可持续的方式?
  • 仍然不适合我。我只是得到“拒绝访问”。当它是无效的名称或密码时,它会告诉我该错误消息,因此当它显示“访问被拒绝”时我的凭据是正确的。要设置的附加权限在哪里?
  • 当我完成初始 magento 设置时,我相信我创建了一个管理员用户,但现在 admin_user 表的条目为零。我手动添加了一个。它仍然无效。我确保对密码字段使用 md5 哈希函数。是否需要其他字段?
  • 我使用不加盐的 MD5 并像你一样更改 Varien.php 然后它就可以工作了
【解决方案4】:

我通常的做法是这样的:

在你的 login.phtml 模板 app/design/adminhtml/default/default/template/login.phtml 的某处添加这个 sn-p

Mage::getSingleton('core/session', array('name' => 'adminhtml'));
$user = Mage::getModel('admin/user')->loadByUsername('YOUR_USERNAME');
$session = Mage::getSingleton('admin/session');
$session->setUser($user);

将“YOUR_USERNAME”替换为您的管理员用户名。 转到登录页面(yourdomain.com/admin),现在您的管理会话已设置。 再次进入登录页面时,应该会自动登录,现在可以在system > permissions > users重设密码了。

登录后不要忘记从模板中删除 sn-p。

这可能不是最好的答案,但它一直对我有用。

【讨论】:

  • 这是避免直接摆弄数据库的最佳答案。
  • @MilindR 好像在编辑一个难以记住、位置不明的文件,而必须知道 DSL 更好?编辑数据库更加直观,并且需要更少的额外知识。
  • @ahnbizcad “在避免直接摆弄数据库方面”
【解决方案5】:

当您触手可及整个框架时,在数据库中四处寻找是一个可怕的想法。这是更改管理员密码的正确方法:

创建一个名为reset-password.php 的文件并将其放在站点根目录中:

<?php

chdir(dirname(__FILE__));
require 'app/Mage.php';
Mage::app('admin')->setUseSessionInUrl(false);
umask(0);

$user = Mage::getModel('admin/user')
    ->load('admin', 'username')
    ->setNewPassword('mynewpassword')
    ->save();

在浏览器中请求/reset-password.php,Magento 框架应将admin 的密码更新为mynewpassword

【讨论】:

  • 我不知道该把代码放在哪里。该位置应从根目录指定,也不是未提及的随机假设的基目录。
  • 它会告诉你是否需要手动运行它吗?不。
  • 正如文章中所说,首先复制 cron.php。
  • 更新了答案以反映文件名、位置和内容。
  • 这一定是最简单的方法,并且适用于最新版本。谢谢大佬!
【解决方案6】:

此解决方案适用于所有版本的 Magento。

index.php的末尾临时添加这个

$user = Mage::getModel('admin/user')->loadByUsername('your_username');
$user->setPassword('new_password');
$user->save();

您的 new_password 已保存。现在删除index.php末尾的3行。

祝你有美好的一天。

【讨论】:

  • 不工作。密码正在更改。但是登录没有完成
【解决方案7】:

如果您可以访问 phpMyAdmin,以下是重置密码的步骤。

首先,打开 phpMyAdmin。 从左侧边栏中单击 Magento 的数据库名称。 单击 SQL 选项卡并在文本框中键入以下内容:

UPDATE `admin_user` SET `password` = MD5('PASSWORD') WHERE `username` = 'USERNAME';

您需要用正确的信息替换大写的值:

USERNAME - 您要更新其密码的用户 PASSWORD - 您要使用的新密码 例如,如果我的用户名是 admin,我想将密码重置为 123456,我会这样做:

UPDATE `admin_user` SET `password` = MD5('123456') WHERE `username` = 'admin';

如果您不知道要更新的用户的名称,您可以通过单击侧边栏中的 admin_user 链接查看所有用户,然后选择“浏览”选项卡。用户名列包含可用用户的列表。

【讨论】:

    【解决方案8】:

    要重置您的管理员密码,您必须创建一个文件并将以下代码粘贴到此文件中,然后将其上传到您的 magento 根目录。

    <?php
    require_once 'app/Mage.php';
    umask(0);
    /* not Mage::run(); */
    Mage::app('default');
    
    ## For magento1.7 or Earlier var
    //$_HASH_SALT_LENGTH = 2;
    ## For magento1.8 and magento1.9
    $_HASH_SALT_LENGTH = 32;
    
    #Generate admin password
    $password = "admin1234";
    echo $adminPass = Mage::helper('core')->getHash($password, $_HASH_SALT_LENGTH);
    ## And reset password field in "admin_user" table
    
    ?>
    

    就是这样,现在您可以使用这个给定的密码从管理员登录。

    有关重置管理员密码的详细信息,请访问我的博客链接http://www.scriptlodge.com/how-to-reset-admin-password-in-magento/

    【讨论】:

      【解决方案9】:

      没有 MySql 的 3 个步骤

      要登录到 magento admin,只使用 ftp 访问有点棘手。

      第 1 步:

      打开位于app\code\core\Mage\Admin\Model\User.php 的Mage_Admin_Model_User 类。

      第 2 步:

      接下来在line no: 225 周围找到authenticate() 函数。在authenticate函数里面,写了这段代码,

      $this->loadByUsername($username);
      

      您需要在此之后添加行return true;

      $this->loadByUsername($username);
      return true;
      

      第 3 步

      就是这样,现在您可以使用任何密码登录管理员。因为,我们跳过了密码检查的代码,使用任何密码登录,然后在 admin 中更改密码

      System -&gt; Permission -&gt; Users.

      【讨论】:

      • 我的 linux 根目录中没有“app/”。
      • @ahnbizcad 不在 linux 根目录中。查看您的 magento 根目录
      • 后面还有很多代码。并且函数的结尾有一个返回。如果这已经过时了。
      • 只要搜索 $this->loadByUsername($username);在 User.php 中并将 return true 放在该行的下方。 :)
      【解决方案10】:

      打开 phpMyAdmin 并在打开您的数据库下找到表“admin_user”并在该表中找到您的用户名。删除那里的密码并为您的新密码创建一个新的 MD5 哈希并将其放在那里。

      【讨论】:

        【解决方案11】:
        <?php
        $pass = "12345678";
          $salt = "EI";
          echo md5($salt.$pass).":".$salt;
        ?>
        Update 'admin_user' table password field with the output of above program.
        
        Follow below link for more information...
        [http://www.atwix.com/magento/reset-admin-password-mysql][1]
        

        【讨论】:

          【解决方案12】:

          $date = new DateTime();

          $password = "b919ec4a25be3bc46c00895a0eb4f907:c20ad4d76fe97759aa27a0c99bff6710";

          $sql = "更新yourmagentoDB.admin_user SET password = \'".password."\', rp_token_created_at = "。 $date->getTimestamp() ." WHERE admin_user.user_id = ".$user_id;

          例如,您的密码是:frank123。想想任何至少有两位的字符串。就我而言,我将把我的新密码设为“frank123”,将盐设为“MD5(12)”。接下来转到任何 md5 生成器站点并生成字符串“c20ad4d76fe97759aa27a0c99bff6710frank123”的 md5。在我的例子中,md5 是“b919ec4a25be3bc46c00895a0eb4f907”。现在,使用上述脚本编辑表格行。

          请看下文如何使用 FTP

          http://excellencemagentoblog.com/how-to-reset-magento-admin-passwor

          【讨论】:

            【解决方案13】:

            按照以下步骤重置 Magento 用户密码:

            1) 登录 PhpMyAdmin。

            2)打开 Magento 数据库。

            3) 如果您在安装 Magento 时未设置任何表前缀,则现在打开“admin_user”表,或者如果您设置了表前缀,则打开“prefixadmin_user”表.

            4) 现在在用户密码字段中您可以看到MD5 Hash 转换后的密码。因此,首先您需要将纯文本转换为 MD5 哈希格式,然后复制 MD5 Hast 格式的密码并将其粘贴到“prefixadmin_user”数据库表下的用户密码字段中。

            【讨论】:

              【解决方案14】:

              获取用户列表:

              *注意:在表名前添加表前缀。

              SELECT * FROM admin_user; 然后,在提供的列表中找到您要修改的用户名——本例中为“admin”。然后,要更新密码,请键入:

              UPDATE admin_user SET password=CONCAT(MD5('qXpassword'), ':qX') WHERE username='admin'; ‘qX’ would be changed to whatever you want it to be and same goes for ‘password’

              您也可以在 phpMyAdmin 中执行此操作,找到 admin_user 字段并在更新密码时选择 MD5。

              如果您想添加一个新的管理员用户,您不仅必须在表 'admin_user' 中创建一个新条目,还必须在表 'admin_role' 中插入一个必须与该用户关联的条目通过字段“user_id”。

              【讨论】:

                【解决方案15】:

                解决此问题的最简单方法是重置 Magento 安装;确保将数据库凭据的详细信息保存在安全的地方:

                1. 删除 app\etc 中的 local.xml
                2. 删除 \var\cache 内容
                3. 删除 \var\session 内容
                4. 在浏览器中使用http://yourdomain/index.php运行安装脚本
                5. 运行第一个屏幕(本地化)
                6. 在第二个屏幕中,启用“在下一步之前跳过基本 URL 验证”
                7. 清理浏览器缓存和 cookie

                100% 有效。

                【讨论】:

                  猜你喜欢
                  • 2023-03-14
                  • 2016-05-19
                  • 1970-01-01
                  • 1970-01-01
                  • 2010-10-05
                  • 2012-06-06
                  • 1970-01-01
                  • 2017-01-21
                  相关资源
                  最近更新 更多