一個(gè)客戶的 WordPress 站點(diǎn)需要遷移到新的主機(jī)上,最重要的一步就是導(dǎo)出 MySQL 數(shù)據(jù),然后導(dǎo)入到新的服務(wù)器上,客戶唯一可以提供的是網(wǎng)站的 FTP 賬戶,稍微分析了一下,我們得到了以下結(jié)論:
- 客戶把 WordPress 的用戶名密碼都忘記了,沒有辦法通過 WordPress 找回密碼的功能找回密碼,WordPress 儀表盤登錄不了。
- 服務(wù)器沒有設(shè)置定時(shí)備份計(jì)劃任務(wù),最新的備份是3個(gè)月以前的,在最近3個(gè)月內(nèi)網(wǎng)站有不少用戶產(chǎn)生的內(nèi)容。沒辦法通過近期的備份直接遷移網(wǎng)站。
- 服務(wù)器密碼也忘記了,MySQL 用戶限制了遠(yuǎn)程連接,雖然可以通過 wp-config.php 看到數(shù)據(jù)庫連接信息,也沒辦法通過MySQL 管理工具導(dǎo)出數(shù)據(jù)。
- 唯一的解決辦法就是想辦法找回 WordPress 的用戶名密碼,登錄 WordPress 儀表盤,安裝數(shù)據(jù)庫導(dǎo)出插件導(dǎo)出數(shù)據(jù)庫。
通過函數(shù)列出所有用戶
因?yàn)槟芡ㄟ^ FTP 登錄服務(wù)器,我們可以利用 WordPress 提供的函數(shù),列出所有用戶,使用 get_users 函數(shù)即可,一般 ID 為1的用戶就是 WordPress 的管理員用戶,如果不是,逐個(gè)嘗試其他ID,直到確認(rèn)哪個(gè)是管理員用戶。安全考慮,修改后一定要?jiǎng)h除以上代碼。
通過函數(shù)修改用戶密碼
得到管理員用戶 ID 后,我們就可以通過 wp_reset_password 函數(shù)來重設(shè)管理員用戶的密碼,把下面的代碼插入主題的 functions.php 中,刷新以下站點(diǎn)的頁面即可。其中,‘123321’ 是新密碼,‘1’ 是管理員用戶 ID。
wp_reset_password('123321', 1);
用新的密碼登錄儀表盤,安裝 wp sync db 插件導(dǎo)出數(shù)據(jù)庫。然后通過 phpMyAdmin 或其他工具導(dǎo)入數(shù)據(jù)庫到新的服務(wù)器。如果需要修改域名,可以直接用wp sync db 推送數(shù)據(jù)庫到新的網(wǎng)站,有需要的自行嘗試,不再展開說了。


