MediaWiki怎样重置用户password

今天。弄mediawiki因为一个周末另一夜没有睡觉导致忘记password了(欢迎吐槽~)
就開始折腾之旅,本来以为能够直接执行一条sql语句就都搞定了结果。。。依照网上大多数讲述的

我已经找不到原作者了。也可能是翻译的官网文档。


引用;
忘了MediaWiki的password。假设启用了wiki的Email功能($wgEmailEnble=true),那用户自能够通过Email获取新password,假设没有能够使用更狠的一招,数据库管理员通过SQL语句直接改动password字段。

如: UPDATE user SET user_password=md5(CONCAT('USERID-',md5('newpassword'))) WHERE user_id=USERID;

注意:

    假设在安装时,设定了表前缀,那要改动语句中的表名为:YourPreFix_user
    存入wiki中的是passwordmd5后再加上usrID在MD5一次的结果,事实上在Localsettong.php中也能够设定是否要两次MD5
    当然,WHERE中也能够用user_name,但记住要首字母大写

郁闷执行了,写的更改成功。可是还是无法登录那个郁闷啊~

继续查就有以下这个文章

您能够使用maintenance/changePassword.php维护脚本来重置一名用户的password。

您必须在命令行下执行该脚本。

换句话说,请登录到安装wiki的server。然后进入命令行提示符。进入安装文件夹,然后进入maintenance子文件夹。执行下列命令:

php changePassword.php --user=someuser --password=somepass

这里可见的“somepass”就是您将要设置的password,而“someuser”就是您将改动其password的username,该username应出如今数据库的“user”表中。

您相同能够使用直接改动数据库的老办法。假设变量$wgPasswordSalt已被设为true值(默认),您能够在MySQL中执行下列SQL查询:

 UPDATE USER SET user_password = MD5(CONCAT(user_id, '-',
   MD5('somepass'))) WHERE user_name = 'someuser';

这里可见的“somepass”就是您将要设置的password。而“someuser”就是您将改动其password的username。该username应出如今数据库的“user”表中。

Note 注意:CONCAT字符串中的user_id是一项列名。不应被替换为'someuser'。

Note 注意:假设您得到了'dbname.user table does not exist'错误,请检查LocalSettings.php文件,并特别注意$wgDBprefix变量的值。假设该变量不为空。请尝试反复执行上述命令,并将SQL查询UPDATE子句中的user替换为$wgDBPrefix_user。



假设您使用的是PostGreSQL,请使用下列查询替代:

  UPDATE mwuser SET user_password =
    md5(user_id || '-' || md5('somepass')) WHERE user_name='someuser';

您还能够尝试使用重设password插件。

posted on 2018-01-24 08:24  yjbjingcha  阅读(218)  评论(0编辑  收藏  举报

导航