WordPress是使用PHP作为它的脚本语言编写的,并且使用了MySQL作为数据库管理系统。如果只是使用WordPress,你根本都不需要知道这些。
但是,对这两者的基本理解可以帮助你处理一些问题以及了解WordPress运行原理。
在这篇文章中,我们会解答WordPress如何使用数据库,包括对WordPress数据库中默认的数据表的介绍。
我们还会为你展示如何使用phpMyAdmin管理WordPress数据库,包括对数据库的备份、优化等方面。
这是一篇关于WordPress数据库管理的综合性文章,所以我们为文章增加了一个导航以便于阅读。
- 什么是数据库以及WordPress如何使用数据库?
- 什么是phpMyAdmin?
- 如何访问phpMyAdmin?
- 理解WordPress数据库的表
- 通过phpMyAdmin管理WordPress数据库
- 使用phpMyAdmin备份WordPress数据库
- 使用插件备份WordPress数据库
- 使用phpMyAdmin导入WordPress数据库
- 使用phpMyAdmin优化WordPress数据库
- 使用phpMyAdmin重置WordPress的密码
- 通过phpMyAdmin为WordPress增加新管理员用户
- 使用phpMyAdmin修改WordPress用户名
- 加强WordPress数据库的安全性
什么是数据库以及WordPress如何使用数据库?
数据库是一种以一定的组织方式存储和获取数据的系统。 数据库可以让软件以可编程方式管理数据。
例如:WordPress使用PHP(编程语言)从数据库读取数据。
WordPress数据库中存储的信息包括文章、页面、评论、分类、标签、自定义字段、用户和一些其他的设置。这些我们会在后面讲解WordPress数据表时进行详细的说明。
当你首次安装WordPress时,程序会让你填写数据库名称、主机、用户名和密码。这些信息是存在一个叫wp-config.php的配置文件内的。
在安装过程中,WordPress利用你提供的数据库信息去创建数据表,并且将默认的安装数据存到这些表中。
安装完成后,WordPress对该数据库进行查询,去为你的网站或博客动态生成HTML页面。
这就是为什么WordPress这么强大,因为你不需要去一个一个手动创建html页面,WordPress会动态帮你处理一切。
WordPress的数据库存在哪里?
WordPress使用MySQL作为它的数据库管理系统,这是一套安装在你的WordPress主机服务器上的软件。你的数据库也是存放在同一台服务器上的。
不过在大多数共享主机环境中,这个位置是无法访问的。但是,如果你使用的是VPS主机或者专用服务器,那么你可以使用命令行工具找到数据库。
大部分情况下,数据库的位置如下所示:
/var/lib/mysql/your_database_name
不过,每个主机数据存放的位置可能会有所差别。
有一点要牢记,你不需要真正的去访问数据库文件本身。你可以使用其他的工具来管理数据库,例如phpMyAdmin。
什么是phpMyAdmin?
PhpMyAdmin是一个基于Web页面的软件,它可以让你使用浏览器来管理MySQL数据库。它提供了一个易于使用的用户界面,可以让你运行MySQL命令和对数据库的操作。
你还可以用它去浏览和编辑数据库表、行和字段,以及导入、导出或者删除数据库中的所有数据。
如何访问phpMyAdmin?
所有顶级的WordPress主机公司都会预装phpMyAdmin,你可以在主机账户的cPanel管理面板的数据库模块中找到它。以下是Bluehost控制面板的一个截图。
由于主机服务商不同,你的cPanel面板看起来可能跟上图中的不太一样,不过你应该也是可以在数据库模块中找到phpMyAdmin的图标的。
点击图标就会打开phpMyAdmin的界面,在界面的左侧边栏你可以选择你的WordPress数据库,然后phpMyAdmin会展示数据库中所有的数据表。
我们一起来看一下WordPress数据库中的表。
理解WordPress数据库中的表
WordPressan安装的时候会有12张默认的数据表,每张表的数据都包含了WordPress不同的功能。
看看这些表的结构,你能很容易的了解网站不同的部分都是存在哪里的。目前,默认的WordPress安装会创建如下的数据表。
注意:每张表名前面的wp_是你在安装过程中选择的数据库前缀。如果你在安装的时候进行了修改,那这里就会显示你自己修改的前缀。
wp_commentmeta:这张表存的是网站上发表的评论相关的元信息(Metadata)。它有四个字段 meta_id、comment_id、meta_key、和 meta_value,每个meta_id都关联一个comment_id。一个关于存储评论元信息的例子就是评论的状态(已批准,待审,垃圾等)
wp_comments:从数据表的名字就可以看出来,这张表存的是WordPress的评论内容。它包含了评论者的名字、网址、邮箱、评论内容等。
wp_links:用于管理由旧版本的WordPress或者链接管理插件创建的博客卷(可以认为是友情链接之类的外链)。
wp_options:这张表包含了网站大部分的设置,例如网站URL、管理员邮箱、默认分类、每页文章数量、时间格式等等的信息。这张表也被大量的WordPress插件用于存储插件的设置信息。
wp_postmeta:这张表包含了WordPress文章、页面以及自定义发布类型的元信息(Metadata)。举个例子,元信息可以是使用哪个模板去展示页面、自定义字段等等。一些插件也会使用这张表去存储插件的数据,例如WordPress SEO信息。
wp_posts:从名字上看说的是文章,但是实际上这张表包含了所有的文章类型,或者我们可以说是内容类型。这张表包含了你所有的文章、页面、修订和自定义发布类型。
wp_termmeta:这张表可以让开发者为他们自定义分类的条目存储自定义元数据。例如WooCommerce会将产品属性和分类的元数据存储在这张表里。
wp_terms:WordPress有一套强大的分类系统可以用来组织你的内容。每一个独立的分类项称之为term,它们被存储在这张表里。例如,WordPress的目录和标签就是分类,目录和标签中的每一项就是term。
wp_term_relationships:这张表是用来管理WordPress发布类型和wp_terms表中term的关系的。例如这张表可以让WordPress知道发布的文章X是属于目录Y的。
wp_term_taxonomy:这张表为wp_terms表中的term定义了分类。例如,如果你有一个叫“WordPress教程”的term,那么这张表中的数据会将这个term一个叫Category的分类进行关联。简单来说,表中的数据可以帮助WordPress区别哪个term是目录,哪个是标签。
wp_usermeta:包含了网站注册用户的元信息。
wp_users:包含用户信息,例如用户名、密码、邮箱等。
通过phpMyAdmin管理WordPress数据库
WordPress数据库包含了重要的设置、所有的博客文章、页面、评论等等。在使用phpMyAdmin的时候一定要非常的小心,否则你可能会不小心删除了重要的数据,然后就Game Over了。
为了以防万一,在操作数据库前一定要完整的备份你的数据库,这样即使出了问题你也可以恢复到之前的数据库。
下面我来看一下如何快速的备份WordPress数据库。
使用phpMyAdmin备份WordPress数据库
用phpMyAdmin备份WordPress数据库,先点击你的数据库,在顶部菜单中,点击(导出)Export。
在较新版本的phpMyAdmin中会让你选择一个导出方式。选择快速(Quick)方式会将数据库导出为一个.sql格式的文件。在自定义(custom)方式中,可以通过更多的选项将备份下载为zip或gzip压缩文件。
我们推荐使用自定义方式,并选择zip格式作为压缩方式。自定义方式还可以再备份的时候选择从数据库中去掉某些不需要备份的表。
例如你曾经用过一个插件,这个插件创建了一个表,但是你现在已经没有用这个插件了,那么如果你就可以在备份的时候将这个表去掉。
通过phpMyAdmin中的import(导入),你可以将导出的数据库文件导入另一个或者原来的数据库中。
使用插件备份WordPress数据库
在WordPress安全方面,保持定期备份网站就是你可以做的最有效的事情。虽然WordPress数据库包含了大部分的网站信息,但它仍然缺少一些相当重要的元素,例如模板文件,图片,上传的文件等。
所有图片都存在/wp-content/目录下的uploads文件夹内。即使数据库里的信息存储了哪张图片在哪篇文章里,但是如果图片文件夹里没有这些文件也是没用的。
WP小白们常常会认为他们需要做的就仅仅是把数据库备份好就可以了。真不是这样的。你需要对网站进行一个完整的备份,包括你的主题、插件和图片。
虽然大部分的主机公司都声称提供日常备份的服务,我们推荐你自己去进行网站备份以防万一。你可以使用WordPress备份插件去设置定期自动备份。
使用phpMyAdmin导入WordPress数据库
你还可以使用phpMyAdmin轻松的导入你的WordPress数据库。启动phpMyAdmin然后选择你的数据库。
接下来,点击顶部菜单中的“导入”(Import)。
在界面上点击“选择文件”(Choose file)按钮然后选择你之前下载的数据库备份文件。接下来phpMyAdmin就会上传备份文件然后将其导入到WordPress数据库中。导入完毕后会看到一个成功的信息提示。
使用phpMyAdmin优化WordPress数据库
WordPress在运行了一段时间后,数据库会产生一些碎片信息。这会增大整体的数据库体积以及查询执行时间。
MySQL本身是有一个简单的命令可以去对数据库进行优化的。打开phpMyAdmin,点击选择你的WordPress数据库,列出数据库中全部的数据表。
在表的下方点击“全选”(Select All),在旁边有个“选中项”(With selected)的下拉列表,点击下拉列表,然后选择“优化表”(Optimize table)。
这样可以通过将选中的表去碎片化来优化WordPress数据库,可以让你的WordPress查询运行的稍微快一些,同时也可以稍微减少数据库的体积。
使用phpMyAdmin重置WordPress的密码
如果你忘记了管理员密码,而且也无法通过重置密码邮件来恢复,那么这个方法可以让你快速重置WordPress密码。
首先,启动phpMyAdmin并选择你的数据库,在右边展示的数据表列表中,点击wp_users表后面的“浏览”(Browse)链接。
注意:你的数据库中表的名字的前缀可能跟上面展示的不一样。
现在就可以看到用户表中的数据行了。点击你想要修改密码的用户名最左边的“编辑”(Edit)链接。
phpMyAdmin会展示一个包含所有用户信息字段的表单。
你需要删除user_pass字段中的值,然后将你的新密码填进去。在函数一栏里,从下拉框中选择MD5,然后点击“执行”(Go)。
你的新密码会使用MD5进行加密,然后存在数据库中。
恭喜!你已经成功的使用phpMyAdmin修改了你的WordPress密码。
可能有些人会有疑惑为什么我们要选择MD5去加密密码。在老版本中,WordPress使用MD5去加密密码。自从WordPress 2.5版本以后就开始使用更强的加密技术了。但是WordPress仍然可以识别MD5加密。
当你用MD5加密的密码登录后,WordPress会识别出来然后用更新的加密算法对密码进行重新加密。
通过phpMyAdmin为WordPress增加新管理员用户
让我们来假设一种情景,你进入了WordPress数据库,但是不是WordPress的管理后台。你可以修改管理员用户的密码,这样就可以阻止其他管理员登录他们的账户。
一个更简单的方法是通过phpMyAdmin添加一个新的管理员账户。
首先,启动phpMyAdmin,然后选择你的WordPress数据库,点击wp_users数据表中的“浏览”(Browse)链接。
phpMyAdmin会展示出该数据表中的数据行,然后点击顶部菜单栏中的“插入”(Insert)。
在打开的页面中有一个添加新用户的表单。
下面是如何填写表单中的每一个字段。
ID – 忽略这个字段,因为是程序自动生成的。
user_login – 用来登录WordPress的用户名。
user_pass – 这是登录密码,你需要输入密码然后在函数(function)一栏选择MD5。
user_nicename – 对URL友好的名字,可以跟登录用户名相同。
user_email – 用户邮箱,可以用来接收重置密码的邮件或者其他通知邮件。
user_url – 用户的网站URL,或者留空。
user_registered – 请在函数栏选择“ CURRENT_TIME” 来自动插入当前时间。
user_activation_key – 这一行可以留空,这个是用来验证用户注册的。
user_status – 这行业可以留空。
display_name – 可以输入用户的全名如果你想在文章署名出显示的话,当然也可以留空。
填写完表单后,点击“执行”(Go)按钮将新用户插入到数据库中。PHPMyAdmin会运行MySQL查询命令去插入数据。
我们现在已经添加了一个用户,但是这个用户的角色并不是管理员。这个信息是存储在另一张叫做wp_usermeta的数据表中的。
在我们把这个用户设置为管理员之前,我们先要知道用户的ID。点击wp_users表的“浏览”(Browse)打开数据表,可以看到新添加的用户的数据以及用户ID。
记住用户ID,在下一步里我们会用到。
现在,打开wp_usermeta表。
接下来,点击顶部菜单中的“插入”(Insert)来添加一行新数据。
你会看到一个用于添加新数据的表单,通过填写这个表单来告诉WordPress你刚刚创建的一个新用户拥有管理员的角色。
下面是如何填写这个表单。
umeta_id – 留空,这是自动生成的。
user_id – 输入你刚才记下来的用户ID。
meta_key – 输入 wp_capabilities。如果你的数据表名使用了其他的前缀,你需要将wp_替换成你自己的。
meta_value – 输入下面的值:
a:1:{s:13:”administrator”;s:1:”1″;}
最后,点击“执行”(Go)按钮保存你的修改。
下一步,我们需要添加另一行来定义用户级别。点击上方的“插入”(Insert)在usermeta表中添加另一行数据。
下面是如何填写该表单。
umeta_id – 留空
user_id – 输入新添加用户的ID。
meta_key – 输入 wp_user_level。 wp_前缀不一样的替换成自己的。
meta_value – 输入10作为用户级别的值。
然后点击“执行”(Go)插入数据。
现在你就可以使用新添加的管理员用户登录WordPress的管理后台了。
使用phpMyAdmin修改WordPress用户名
你可能也注意到了,WordPress允许你修改用户的全名(Full Name)或者昵称(Nickname),但是不允许你修改用户名(Username)。
很多人在WordPress安装的时候选择的用户名,但是以后可能想修改。下面就是如何通过PHPMyAdmin修改用户名。
提示:使用插件修改用户名会更简单。
首先,启动PHPMyAdmin,选择你的数据库,然后浏览wp_users表。
这个表展示了所有你网站上的注册用户,点击你想要修改的用户名旁边的“编辑”(Edit)链接。
找到 user_login字段,将值修改为你想要的新用户名。
最后点击“执行”(Go)保存修改,这样你就可以使用新的用户名登录网站了。
加强WordPress数据库的安全性
在进行讨论之前,我们要强调,每个站点都可以被黑客入侵。 但是,你可以采取某些措施使其变得更难一些。
你可以做的第一件事就是修改WordPress数据库的前缀。这可以显著降低对你的数据库进行SQL注入攻击的几率,因为黑客通常会对网站进行批量攻击,并且将默认的wp_表前缀作为目标。
第二,为你的MySQL用户选择安全级别更高的用户名和密码,这样会让黑客更难破解你的数据库。
对于WordPress的安全性,我们强烈推荐你使用Sucuri。这是最好的WordPress安全插件,可以截取任何MySQL注入的尝试,甚至在攻击到达你的网站前就可以拦截。
最后,希望这篇指南可以让你学会了如何管理WordPress的数据库以及如何使用PHPMyAdmin。
干货,非常感谢分享,这种综合的文档更适合我这种技术渣