忘记Wordpress后台管理密码的恢复方法

昨晚发完第一条博文后,就把笔记本合上睡觉了。今早起来一看,系统竟然变成ArchLinux了,不用想,肯定是Windows自动更新完后给我重启了。赶紧进到Windows里打开KeePass,果然昨晚输入的密码全没保存起来。于是上网搜了下解决办法,具体如下。

来源: https://zhidao.baidu.com/question/917974742761954019.html

下面的六种方法我都没用上,大家可以根据自己情况试试。我的解决方法在最后
1、重装WordPress。我们不推荐这种方法,重装还要下载安装文件比较麻烦。

2、使用找回密码功能。WordPress 本身支持邮件取回密码功能,如果管理员账户的电子邮件有效,在后台登录界面,点击“忘记密码?”链接,输入正确邮件地址后,即可收到一封含重置密码的邮件。

点评:在我这里不管用,说是不能发送邮件,可能没有启用mail()函数。

3、把WP目录下的wp-config.php文件删除,然后重新访问网站,这会让你重新进行最后一个安装步骤,这样就可以得到新的密码。

点评:实测无效,输入完数据库信息后,就直接跳过输入新密码的过程了。

4、登录 phpMyAdmin ,找到WP数据库的wp_users表,在这里可以看到默认的用户admin,它的密码是加密过的。这时,我们可以修改这条数据,找到user_pass这个域,把它原来的一长串数据删掉,写上你的密码,比如123456。这时,你会看到一个函数的下拉框,把它选择为MD5。这是为了把你的密码进行MD5算法加密,再保存。这样,再通过你的域名/wp-admin 访问到管理入口,用这个密码就可以登陆了。

点评:为了安全,把phpMyAdmin删掉了,所以这个和下个我都无法用。

5、通过 SQL 语句修改密码。登录 phpMyAdmin 进入 WordPress 数据库并执行以下 SQL 语句:

UPDATE wp_users SET user_pass = MD5(‘PASSWORD’) WHERE wp_users.user_login =’admin’ LIMIT 1;

6、使用 PHP 找回密码。PHP 方法归根结底也是 SQL 查询语句修改的方式,只不过提供一个用户界面。将以下代码复制并保存为 password-resetter.php 文件,用FTP上传至 WordPress 根目录,然后运行该文件,输入密码即可重置。

<?php
/*你的数据库服务器地址,一般保持默认*/
$servername = "localhost:3306";
/*数据库用户名*/
$phpMyadminUser = "root";
/*数据库密码*/
$phpMyadminKey = "yiduqiang";
/*数据库名称*/
$phpMyadminName = "test";
/*wordpress数据表格前缀*/
$QZ = "wp_";
/*你要设置的wordpress新密码*/
$NewKey = "yiduqiang";
/*你要设置新密码的用户名*/
$wordpress_User = "yiduqiang";
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>wordpress密码找回工具</title>
</head>
<body>
<?php
error_reporting(0);
if(!mysql_connect($servername,$phpMyadminUser,$phpMyadminKey))
{
    echo "对不起,数据库链接出错。<br />";
}
else
{
    echo "数据库链接成功。<br />";
    mysql_select_db($phpMyadminName,mysql_connect($servername,$phpMyadminUser,$phpMyadminKey));
    if (!mysql_query("update ".$QZ."users set user_pass='".md5($NewKey)."' where user_login='".$wordpress_User."'"))
    {
        echo "对不起,修改密码失败。";
    }
    else
    {
        echo "修改密码成功。";
    }
}
?>
</body>
</html>

点评:原文里并没有这个php文件,后来在

https://www.wpdaxue.com/reset-wordpress-password.html

找到一个,没用过。

结果就是,上面的方法都没用上,不过根据第4、5、6的思路,自己想办法解决了:

7、ssh登录到服务器上,连接数据库:

mysql -h 127.0.0.1 -u 你的数据库用户名 -p

然后输入数据库密码,就登录到数据库了,接着切换到存有登录信息的那个数据库

use 数据库名;

查询用户名:

select * from wp_users;

其中user_login那一列的就是用户名了。最后更新数据库,修改密码:

UPDATE wp_users SET user_pass=MD5('新的密码') WHERE user_login='你的用户名' LIMIT 1;