当前位置: 首页 > news >正文

【实战记录】使用 wp-cli 恢复/修改 WordPress 密码

内容概览:

  1. 使用 wp-cli 修改 WordPress 密码
  2. docker 常规操作(文件复制、执行 bash 等)


也是好久没写博客了,突发奇想想在自己的 WordPress 站点写一篇博文。

然后我惊讶的发现,我忘记密码了,更糟糕的是,出于安全考虑,我启用了这个:

0

汗流浃背了家人们(非常推荐各位安装一下这个插件,看后台这个插件已经帮我阻挡了很多暴力破解密码的尝试了)。

尝试了两次之后是彻底不敢动了,检索了一下重置密码的操作,大概分为以下几种方法:

  1. 使用 WordPress 自带的密码重置功能(需要提前做好发信配置)
  2. 修改数据库
  3. 修改 WordPress 的 php 文件
  4. 使用 wp-cli 工具进行修改

其实上述方法到最后都是修改数据库,直接或者使用工具间接的区别而已。

最简单的方法是1和4,2和3都需要直接进行破坏性操作,如果出现什么失误的话会很麻烦(已有的简单工具会比人可信)。但是我没有提前配置好邮件发送的配置,因此只能使用 wp-cli 了。

我的 WordPress 是使用 docker 部署的,理论上镜像中应该包括了 wp-cli,但是我实测确实容器内执行不了 wp 命令。因此我准备在主机中使用 wp-cli

wp-cli 下载地址:https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar

我尝试用 curl 下载,但是下载太慢,因此挂梯子下载后上传至主机。

wp-cli 使用可参考:https://juejin.cn/post/7521250468267458611

在切换到 WordPress 站点的目录下尝试运行命令时出现了问题,报错:Error: Error establishing a database connection. MySql我可以确定服务运行正常,因此是连接时出现的问题。

使用命令 cat wp-config.php | grep DB_ 检查 wp-cli 使用的数据库配置,发现了问题。上文提到了我的站点使用 docker 进行部署的,而我的 MySQL 也是用 docker 部署的,因此在站点的数据库配置中使用了别名而非 IP 地址或主机名。因此想要在本机上使用 wp-cli 会很麻烦(我的原则是尽量不修改已有的东西,实际上可以临时修改配置来实现访问)。

最终的解决方案是将 wp-cli 的文件通过 docker 命令 docker cp 复制到容器中再执行 wp user update username --user_pass=newpassword 命令完成了密码的重置。

理论上的最佳实践是创建一个带 wp-cli 的 docker 镜像,相关站点的部署都使用该镜像。



总结:

  1. 部署的服务如果有密码恢复功能,最好还是提前配置好(邮件配置等等)
  2. 解决问题时尽量少进行破坏性操作,最好不要做“临时修改XX”以及直接操作数据库这样的事情,风险比较大
http://www.hskmm.com/?act=detail&tid=6214

相关文章:

  • Spring Boot 下 Druid 连接池:多维度优化打造卓越性能
  • 讨好型人格自救指南:重建健康自我与关系
  • 丑东西经济学:全面分析
  • vue3使用vue3-pdf-app预览pdf文档
  • 使用lvgl/lv_port_pc_visual_studio在PC上运行LVGL模拟器
  • 深入浅出 Java 多线程:从线程生命周期到并发安全
  • 儿童无屏幕对讲机 Bunny 融资百万美元;腾讯会议推出 AI 托管:先行听会、代听多会、全程记录丨日报
  • Python turtle 海龟画图入门指南
  • uni-app中v-if使用”异常”
  • 二叉树遍历
  • Python Socket网络编程(3)
  • 实用指南:有关gitlab14.x版本在内网环境下无法添加webhooks的解决方法
  • 如何创建可引导的 macOS Tahoe 安装介质
  • 强类型、类型安全
  • 完整教程:数据结构——逻辑结构物理结构
  • 前端面试
  • 外置Tomcat启动Springboot项目后,请求参数中文乱码的问题解决 - yjry
  • gradle项目多模块中主模块加载子模块中的sqlmapper文件方法
  • MCP - 使用 fastmcp 编写 Client 调用 MCP Serverr - Streamable HTTP (四)
  • 全面理解MySQL架构
  • Figma EX 125.7.5 UI原型设计
  • 基于WebSocket的命令与控制工具WSC2详解
  • LocalDateTime节日和平日在时间占比计算方法
  • JSON字符串转换List对象列表 JSONArray toJavaList
  • vue3 使用 docx-preview 预览 Word文档
  • 数据库原理-第三章——SQL
  • 啥是CPU
  • C# Avalonia 15- Animation- CodeAnimation
  • ubuntu 18.04安装mysql 8.0.41
  • Topaz Photo AI Pro 4.0.4 AI图片智能降噪(win版)