一个客户的 WordPress 站点需要迁移到新的主机上,最重要的一步就是导出 MySQL 数据,然后导入到新的服务器上,客户唯一可以提供的是网站的 FTP 账户,稍微分析了一下,我们得到了以下结论:
- 客户把 WordPress 的用户名密码都忘记了,没有办法通过 WordPress 找回密码的功能找回密码,WordPress 仪表盘登录不了。
- 服务器没有设置定时备份计划任务,最新的备份是3个月以前的,在最近3个月内网站有不少用户产生的内容。没办法通过近期的备份直接迁移网站。
- 服务器密码也忘记了,MySQL 用户限制了远程连接,虽然可以通过 wp-config.php 看到数据库连接信息,也没办法通过MySQL 管理工具导出数据。
- 唯一的解决办法就是想办法找回 WordPress 的用户名密码,登录 WordPress 仪表盘,安装数据库导出插件导出数据库。
通过函数列出所有用户
因为能通过 FTP 登录服务器,我们可以利用 WordPress 提供的函数,列出所有用户,使用 get_users
函数即可,一般 ID 为1的用户就是 WordPress 的管理员用户,如果不是,逐个尝试其他ID,直到确认哪个是管理员用户。安全考虑,修改后一定要删除以上代码。
通过函数修改用户密码
得到管理员用户 ID 后,我们就可以通过 wp_reset_password
函数来重设管理员用户的密码,把下面的代码插入主题的 functions.php 中,刷新一下站点的页面即可。其中,‘123321’ 是新密码,‘1’ 是管理员用户 ID。
wp_reset_password('123321', 1);
用新的密码登录仪表盘,安装 wp sync db 插件导出数据库。然后通过 phpMyAdmin 或其他工具导入数据库到新的服务器。如果需要修改域名,可以直接用wp sync db 推送数据库到新的网站,有需要的自行尝试,不再展开说了。