WordPress的数据库对于WordPress网站来说就像人的大脑一样,重要性不言而喻。因为网站所有的信息都是存在那里面的,所以也成为了黑客攻击的重要目标。黑客会运行一些自动的代码去执行SQL注入攻击。不幸的是,许多人在安装WordPress的时候忘记去修改数据表前缀了,这就给了黑客机会可以通过默认的前缀 wp_ 对数据库进行大量的攻击。保护你的数据库最好的方法就是在安装WordPress的时候将数据表名的前缀,这很简单。但是如果你的网站已经在运行中了,那么修改数据表前缀就会稍微麻烦一些了。
准备工作
我们推荐你跟着本教程一起动手之前,先把网站的数据库进行备份。网站的日常备份非常重要,我们推荐使用BackupBuddy插件来进行自动化的备份。接下来,我们推荐你将网站暂时切换成维护状态。
在wp-config.php中修改数据表前缀
打开WordPress网站根目录的wp-config.php文件,将表前缀从 wp_ 改成其他的,比如 wp_a123456_。
那么这行代码看起来就是这样的:
$table_prefix = 'wp_a123456_';
注意:表前缀只能由数字、字母和下划线组成。
修改所有数据库表名
你需要登录数据库(一般通过phpMyAdmin登录),然后把表名的前缀改成我们刚刚在wp-config.php里定义的。如果你使用的是带cPanel的WordPress主机,那么你可以在cPanel里找到phpMyAdmin的链接。
WordPress默认的表一共有12个,手动一个一个修改的话会比较麻烦。
所以,为了让工作进行的更快更有效率,我们提供了一个SQL查询语句。你可以把下面的代码复制到 SQL 的输入框中,并点击“执行”按钮。
RENAME table `wp_commentmeta` TO `wp_a123456_commentmeta`; RENAME table `wp_comments` TO `wp_a123456_comments`; RENAME table `wp_links` TO `wp_a123456_links`; RENAME table `wp_options` TO `wp_a123456_options`; RENAME table `wp_postmeta` TO `wp_a123456_postmeta`; RENAME table `wp_posts` TO `wp_a123456_posts`; RENAME table `wp_terms` TO `wp_a123456_terms`; RENAME table `wp_termmeta` TO `wp_a123456_termmeta`; RENAME table `wp_term_relationships` TO `wp_a123456_term_relationships`; RENAME table `wp_term_taxonomy` TO `wp_a123456_term_taxonomy`; RENAME table `wp_usermeta` TO `wp_a123456_usermeta`; RENAME table `wp_users` TO `wp_a123456_users`;
如果你安装的其他插件也在数据库里创建了数据表,那就把这些表都添加进去。我们的宗旨是把所有数据表的前缀都改掉。
Options表
我们需要查询一下 options 表看看有哪些字段使用了wp_作为前缀,然后将它们都替换掉。为了方便查询,使用下面的查询语句:
SELECT * FROM `wp_a123456_options` WHERE `option_name` LIKE '%wp_%'
你会看到返回了很多条结果,把结果中的wp_一个一个修改掉。
UserMeta表
接下来,我们需要在usermeta表中查询哪些字段使用了wp_作为前缀,然后进行替换。使用下面的SQL语句进行查询:
SELECT * FROM `wp_a123456_usermeta` WHERE `meta_key` LIKE '%wp_%'
根据你安装的插件数量不同,返回的查询结果数量也不同。挨个把wp_改成新的前缀。
备份&完成
现在你就可以准备测试网站了。如果你按照上面的步骤都做对了,那么网站应该运行良好,没有任何问题。然后对数据库做个备份,以防万一。
原创文章,作者:745907710,如若转载,请注明出处:https://blog.ytso.com/tech/wp/246222.html