MediaWiki如何重置用户密码

今天,弄mediawiki由于一个周末还有一夜没有睡觉导致忘记密码了(欢迎吐槽~)
就开始折腾之旅,本来以为可以直接执行一条sql语句就都搞定了结果。。。按照网上大多数讲述的

我已经找不到原作者了,也可能是翻译的官网文档。
引用;
忘了MediaWiki的密码,如果启用了wiki的Email功能($wgEmailEnble=true),那用户自可以通过Email获取新密码,如果没有可以使用更狠的一招,数据库管理员通过SQL语句直接修改密码字段。

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

注意:

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

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

继续查就有下面这个文章

您可以使用maintenance/changePassword.php维护脚本来重置一名用户的密码。

您必须在命令行下运行该脚本。换句话说,请登录到安装wiki的服务器,然后进入命令行提示符。进入安装目录,然后进入maintenance子目录。运行下列命令:

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

这里可见的“somepass”就是您将要设置的密码,而“someuser”就是您将修改其密码的用户名,该用户名应出现在数据库的“user”表中。

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

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

这里可见的“somepass”就是您将要设置的密码,而“someuser”就是您将修改其密码的用户名,该用户名应出现在数据库的“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';

您还可以尝试使用重设密码插件。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

kaitoulee

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值