WordPress數據庫是黑客最喜歡攻擊的目標,許多人在安裝WordPress時忘記更改數據庫前綴,採用的是默認前綴wp_,這使黑客很容易進行大規模攻擊。保護數據庫的最機智的辦法就是更改數據庫表前綴。
如果你還沒GreenGeeks等國外的wordpress託管主機會在創架設網站點時,會設置隨機的表前綴,無需你再修改,不過以防萬一你也可以按下文的方法在wp-config.php文件中確認一下表前綴;而如果你是在服務器(譬如Linode、阿里雲)上自己搭建的網站,並且已經建好了,那麼,請按照下文的方法修改數據庫表前綴。
準備工作
請在操作之前備份你的網站數據庫,並選擇網站在線用戶少的時間段,修改期間,最好將網站開啟維護模式,如果網站用戶很少,也可以不用開啟維護模式,整個修改過程大約在10分鐘以內。
更改wp-config.php文件中的表前綴
找到網站根目錄中的wp-config.php文件並編輯它,在文件中找到下一段中所示的代碼行,將其中的表前綴從wp_更改為自定義內容(由字母、數字和短下劃線構成),譬如:a1b2c3_
$table_prefix = 'wp_';
修改後的示例:
$table_prefix = 'a1b2c3_';
更改所有數據庫表的前綴名稱
在網站的運維面板(譬如Cpanel、寶塔)中,找到database或數據庫相關的欄目,進入數據庫的管理面板,如果有phpMyAdmin功能入口,就使用phpMyAdmin訪問你的數據庫,然後按下面的步驟,將表前綴更改為我們剛才在wp-config.php文件中的新的表前綴
- 單擊左側菜單中的數據庫名稱以展開所有表。
- 在右側,全選所有以wp_開頭的表
- 單擊with selected,在下拉菜單中選擇replace table prefix。
- 在“From”字段中輸入wp_,在“To”字段中輸入新的表前綴,在本示例中為a1b2c3。
- 單擊continue進行更改,修改完成後刷新當前頁面。

修改options表
請在左側菜單中的搜索框內輸入options並回車,找到options表,在本示例中,數據表名稱為a1b2c3_options,我們需要找到本表的options_name一列中使用了wp_作為前綴的行,以便我們將其中的wp_替換成新的前綴,請點擊頁面中表格右上方的[edit line],然後將代碼WHERE `option_name` LIKE '%wp_%'黏貼到已有的代碼之後,如果按照本文示例,黏貼完成後將是如下效果,然後點擊Go按鈕執行搜索
SELECT * FROM `a1b2c3_options` WHERE `option_name` LIKE '%wp_%'
搜索後將看到一條記錄,其中option_name是wp_user_roles,請雙擊對應單元格後修改,修改完成後將是新前綴_user_roles,譬如本示例中是:a1b2c3_user_roles。
如果你的站點時wordpress多站點,你將可能不止1個option表,記得每個options表都需要修改。
修改UserMeta表
接下來,我們需要在usermeta中搜索所有使用wp_作為前綴的字段,因此我們可以替換它。為此,請使用以下SQL查詢:
請在左側菜單中的搜索框內輸入usermeta並回車,找到usermeta表,在本示例中,數據表名稱為a1b2c3_usermeta,我們需要找到本表的meta_key一列中使用了wp_作為前綴的行,以便我們將其中的wp_替換成新的前綴,請點擊頁面中表格右上方的[edit line],然後將代碼WHERE `meta_key` LIKE '%wp_%'黏貼到已有的代碼之後,如果按照本文示例,黏貼完成後將是如下效果,然後點擊Go按鈕執行搜索
SELECT * FROM `a1b2c3_usermeta` WHERE `meta_key` LIKE '%wp_%'
搜索後將看到多條記錄,並且不同網站根據外掛安裝的不同而不同,請逐一將meta_key中的wp_前綴換為新前綴,但要注意的是,要仔細區別meta_key的含義,譬如:若你安裝了wp rocket外掛,則會看到一條包含wp_rocket的記錄,則此處的wp_不需要修改。如果看到的是wp-而不是wp_,那麼也不需要修改。
測試站點
至此,你可以測試網站了,使用新瀏覽器或無痕模式的瀏覽器,逐一打開網頁前台和後台,進行多次訪問和操作,如若正常,則說明修改成功。如若不正常,又無法界定問題所在,請先恢復數據庫備份以及wp-config.php文件中的表前綴,確保網站可以訪問,然後可以通過複製站點的方式去排查問題所在。
結語:我通過上文教學成功修改了多個網站,有簡單的站點、也有復雜的站點,感謝如下教學給予我的幫助:
- https://www.wpbeginner.com/wp-tutorials/how-to-change-the-wordpress-database-prefix-to-improve-security/
- https://help.one.com/hc/en-us/articles/360002107438-Change-the-table-prefix-for-WordPress-
Your page rank: