WordPress网站的数据库才是你的一切,一定要保护好它!-一个博客
WordPress网站的数据库 为什么这么重要?甚至有站长说:“它就像阳光、水、每天早晨的咖啡或牛奶一样,如果失去了它,你将失去一切!”这不是危言损听,本文将介绍WordPress网站的数据库是干什么的,为什么这么重要,以及如何保护它。
目录

WordPress仅包含核心程序与数据库两部分
WordPress数据库为什么这么重要?
WordPress数据库是怎么工作的?
为什么一段时间后,WordPress数据库不止12张表
保护WordPress网站的数据库安全的常见措施

WordPress仅包含核心程序与数据库两部分

WordPress本身仅包含两个部分,就是核心程序和数据库。

核心程序很好理解,下载的WordPress安装包中,所有”wp-“开头的目录与文件都是核心程序部分。

当安装WordPress时会要求创建数据库。为了运行,这个数据库使用一个名为MySQL的关系数据库管理系统。负责存储网站上的信息,有限制条件的向网站访问者显示这些信息。
WordPress数据库为什么这么重要?

数据库是WordPress在使用过程中,存储一切内容的地方。这些内容包括:

所有的帖子
所有的页面
所有的主题与插件设置
评论
修订版本
站点设置
等等……网站所产生的一切内容!

假如运营了几年的网站,有一天数据库消失了,你将失去一切,一切,一切,一切,绝对的一切。

而WordPress的另一个部分“核心程序”就算是消失了,或者被损坏了,没关系!随时都可以重新下载一份。(这是为什么不建议修改WordPress核心程序代码的原因,推荐使用hook钩子……)
WordPress数据库是怎么工作的?

表格、表格和更多表格:这就是 WordPress 数据库的全部内容。

相当于一个大型的储物仓库,里面有很多个储物柜,每一个单独的储物柜就是一张表,这个大型的储物仓库就相当于是数据库。每个储物柜还可以开很多的小门,那就是表中的列。

默认安装的情况下,WordPress数据库有12张表。
WordPress网站的数据库才是你的一切,一定要保护好它!-一个博客
WordPress 数据库默认表
WordPress 数据库默认表

wp_commentmeta:存储评论的元数据(元数据是评论附带的数据:作者、作者的电子邮件、发布时间和添加它的帖子)。
wp_comments:此表存储评论内容。
wp_links:此表存储博客链接列表,在新版本中基本已弃用。
wp_options:这是最重要的表之一,包含 WordPress 管理的“设置”菜单中包含的所有站点选项,以及一些主题和插件的设置。部分主题或插件会额外新建表存储设置信息,例如 Yoast SEO 和 WooCommerce 等。
wp_postmeta:此表存储帖子、页面和自定义帖子类型的元数据,例如作者、发布时间、固定链接、自定义字段等。
wp_posts:此表包含所有发布内容(帖子、页面和自定义帖子类型)。
wp_termmeta:此表允许存储每个分类的附加数据或元数据。
wp_terms:此表包含网站的所有分类(类别、标签、自定义分类法等)。
wp_term_relationships:此表包含内容类型和分类(即哪些分类法包含哪些帖子等)之间的关系。
wp_term_taxonomy:此表存储每个项目的分类,这很重要,因为一个项目可以存在于多个分类中(例如,在一个类别和自定义帖子类型中)。
wp_usermeta:此表存储与用户相关的所有元数据。
wp_users:此表包含站点的所有用户,不论是什么角色(管理员、订阅者、编辑者等)。

为什么一段时间后,WordPress数据库不止12张表

上面提到的是默认的表,也就是WordPress核心数据部分,但很多功能较复杂的主题或插件会额外创建表。所以一段时间后,WordPress数据库不止这些默认的表。

主题或插件创建的表,应该及时清理,否则数据库会越来越臃肿。这里的清理是指主题或插件被卸载后,而遗留在数据库中的表需要及时清除。

数据库臃肿带来的最主要问题有:消耗更多的服务器资源、性能下降、浪费存储空间。

推荐的数据库清理插件:Advanced Database Cleaner PRO 汉化版
保护WordPress网站的数据库安全的常见措施

数据库的链接地址、数据库名称、用户名与密码这些敏感信息千万不能泄露。在WordPress中,wp-config.php会存储所有这些敏感信息,所以应该将该文件的权限重新设置。
在Nginx或Apache中,设置访问wp-config.php直接返回403(禁止访问)。
将WordPress主机IP设置为MySql数据库安全连接IP,其余IP禁止连接。如果网站与数据库是同一服务器,建议禁止外网连接MySql。
定期备份数据库(建议每日备份)。
使用WordPress安全插件,例如Wordfence Security、iThemes Security等