备份您的数据库

强烈建议您定期备份数据库,并在升级之前进行备份。

如果出现问题,从备份恢复您的数据库将是可行的。 

注意: 下面的步骤会备份 WordPress 数据库(帖子、页面、评论、设置等),但不会备份您的 WordPress 文件(主题、插件、上传内容、wp-config.php等)。要进行完整站点备份,请查看 WordPress 备份 和 备份您的 WordPress 文件。

当您备份数据库时,通常会创建一个导出文件(例如,.sql、.gz或.bz2)。该导出文件可以与您的文件备份一起存储,以便数据库和文件作为一个“备份集”保持在一起,但恢复仍然需要将其导入 MySQL/MariaDB。

使用 cPanel X 进行备份

cPanel 是一种流行的控制面板,被许多网络主机使用。备份功能可用于备份您的 MySQL 数据库。不要生成完整备份,因为这些仅用于归档目的,无法通过 cPanel 恢复。查找“下载 MySQL 数据库备份”并点击数据库名称。*.gz文件将下载到您的本地驱动器。

无需解压此文件即可恢复它。使用相同的 cPanel 程序,浏览到 gz 文件并上传它。一旦上传完成,浏览器底部将显示转储完成。如果您正在上传到新主机,您需要重新创建数据库用户以及匹配的密码。如果您更改了密码,请在 wp-config.php 文件中进行相应的更改。

使用 phpMyAdmin

phpMyAdmin是用于操作您数据库的程序名称。

以下信息是使用 phpMyAdmin 版本 4.4.13 连接运行在 Linux 上的 MySQL 版本 5.6.28 进行测试和验证的。

phpmyadmin_top

快速备份流程

当您在不压缩的情况下备份 WordPress 数据库中的所有表时,您可以使用简单方法。要恢复此备份,您的新数据库不应有任何表。

  1. 登录到您的服务器的 phpMyAdmin
  2. 从左侧窗口选择您的 WordPress 数据库。在本例中,数据库名称为“wp”。
  3. 右侧窗口将显示您 WordPress 数据库中的所有表。点击顶部选项卡集上的“导出”选项卡。

备份您的数据库

  1. 确保选中了“快速”选项,并点击“Go”,您应该会被提示下载文件。将此文件保存到计算机上。根据数据库大小,这可能需要几分钟。

phpmyadmin_quick_export

自定义备份流程

如果您想更改默认行为,请选择“自定义”备份。在上面的步骤 4 中,选择“自定义”选项。显示详细选项。

phpmyadmin_custom_export

表部分

数据库中的所有表都已选中。如果您有其他程序使用数据库,则仅选择对应于您的 WordPress 安装的表。它们将是那些以“wp_”开头或在您的'wp-config.php'文件中指定的任何'table_prefix'的表。

如果您只安装了 WordPress 博客,请保持原样(或如果更改了选择,请点击“全选”)

输出部分

从压缩框中选择“zipped”或“gzipped”以压缩数据。

phpmyadmin_export_output

格式部分

确保选中了 SQL。与 CSV 或其他数据格式不同,此选项导出 SQL 命令序列。

在特定于格式的选项部分中,保持选项不变。

phpmyadmin_export_formatspecific

对象创建选项部分

选择添加 DROP TABLE / VIEW / PROCEDURE / FUNCTION / EVENT / TRIGGER 语句。在目标数据库上创建表之前,它将调用 DROP 语句以删除旧存在的表(如果存在)。

phpmyadmin_export_object

数据创建选项部分

保持选项不变。

phpmyadmin_export_data

现在点击窗口底部的“Go”,您应该会被提示下载文件。将此文件保存到计算机上。根据数据库大小,这可能需要几分钟。

记住 – 您没有备份文件和文件夹(例如图像),但您的所有帖子和评论现在是安全的。

使用直连 MySQL/MariaDB 命令

phpMyAdmin 无法处理大型数据库,因此使用直连 MySQL/MariaDB 代码会有所帮助。

将目录更改为您想要导出备份的目录:

user@linux:~> cd files/blog
user@linux:~/files/blog>

使用mysqldump命令与您的 MySQL 服务器名称、用户名和数据库名称。它会提示您输入密码(帮助:尝试man mysqldump)。

备份所有数据库表

mysqldump --add-drop-table -h mysql_hostserver -u mysql_username -p mysql_databasename

仅从数据库备份某些表

mysqldump --add-drop-table -h mysql_hostserver -u mysql_username -p mysql_databasename

示例:

user@linux:~/files/blog> mysqldump --add-drop-table -h db01.example.net -u dbocodex -p wp > blog.bak.sql
Enter password: (type password)

使用 bzip2 压缩备份文件

user@linux:~/files/blog> bzip2 blog.bak.sql

您可以像上面两个命令一样在一行中执行相同操作:

user@linux:~/files/blog> mysqldump --add-drop-table -h db01.example.net -u dbocodex -p wp | bzip2 -c > blog.bak.sql.bz2
Enter password: (type password)

|(管道)之后的bzip2 -c意味着备份是实时压缩的,而> blog.bak.sql.bz2将 bzip 输出发送到名为blog.bak.sql.bz2的文件。

尽管 bzip2 能够比旧的压缩算法(.Z、.zip、.gz)更有效地压缩大多数文件,但它明显较慢(压缩和解压)。如果您有大型数据库需要备份,gzip 是更快的选择。

user@linux:~/files/blog> mysqldump --add-drop-table -h db01.example.net -u dbocodex -p wp | gzip > blog.bak.sql.gz

使用 MySQL Workbench

MySQL Workbench(以前称为 My SQL Administrator)是一个用于执行管理操作的程序,例如配置您的 MySQL 服务器、监控其状态和性能、启动和停止它、管理用户和连接、执行备份、恢复备份以及许多其他管理任务。

您可以使用命令行界面(如mysqladmin或mysql提供的)执行其中大部分任务,但 MySQL Workbench 在以下方面具有优势:

  • 其图形用户界面使其更易于使用。
  • 它提供了对影响您的 MySQL 服务器的性能、可靠性和安全性的设置的良好概览。
  • 它以图形方式显示性能指标,从而更容易确定和调整服务器设置。
  • 它适用于 Linux、Windows 和 MacOS X,并允许远程客户端跨平台备份数据库。只要您有权访问远程服务器上的 MySQL 数据库,您就可以将数据备份到您有写入权限的任何位置。
  • 与 phpMyAdmin 一样,没有备份数据库大小的限制。

以下信息是使用 MySQL Workbench 版本 6.3.6 连接运行在 Linux 上的 MySQL 版本 5.6.28 进行测试和验证的。

mysql_workbench_top

备份数据库

这假设您已经安装了 MySQL Workbench 并将其配置好,以便您可以本地或远程登录到 MySQL 数据库服务器。有关安装说明,请参阅您平台上的 MySQL Workbench 安装包中的文档或 在线文档。

  1. 启动 MySQL Workbench
  2. 如果实例显示在主页上,请点击您的数据库实例。或者,点击顶部菜单的 Database -> Connect Database,输入所需信息并点击 OK。
  3. 点击左侧窗口中的 Data Export(数据导出)。

mysql_workbench_export

  1. 选择您要备份的 WordPress 数据库。
  2. 在 Export Options(导出选项)中指定目标目录。您需要在写入备份文件的目录中具有写入权限。
  3. 点击窗口右下角的 Start Export(开始导出)。

mysql_workbench_export2

从备份恢复

  1. 启动 MySQL Workbench
  2. 如果实例显示在主页上,请点击您的数据库实例。或者,点击顶部菜单的 Database -> Connect Database,并点击 OK。
  3. 点击左侧窗口中的 Data Import/Restore(数据导入/还原)。
  4. 指定存放备份文件的文件夹。点击 Import from Dump Project Folder(从转储项目文件夹导入)右侧的“…”按钮,选择备份文件夹,然后点击 Open(打开)。
  5. 点击窗口右下角的 Start Import(开始导入)。数据库恢复将开始。

mysql_workbench_import

MySQL GUI 工具

除了 MySQL Workbench 之外,还有许多 GUI 工具可用于备份(导出)您的数据库。

NameOS (Paid edition)OS (Free edition)
MySQL WorkbenchWindows/Mac/LinuxWindows/Mac/Linux参见 上文
EMS SQL Management Studio for MySQLWindows
Aqua Data StudioWindows/Mac/LinuxWindows/Mac/Linux (14 days trial)支持 9 种语言
Navicat for MySQLWindows/Mac/LinuxWindows/Mac/Linux (14 days trial)支持 8 种语言
SQLyogWindows
Toad for MySQLWindows
HeidiSQLWindows
Sequel ProMacCocoaMySQL 继任者
QueriousMac

使用 WordPress 数据库备份插件

您可以在 WordPress 插件目录 中找到可帮助您备份数据库的插件。

以下说明针对名为 WP-DB-Backup: 的插件:

安装

  1. 在 Administration(管理) > Plugins(插件) > Add New(添加新插件) 中搜索“WP-DB-Backup”。
  2. 点击 Install Now(立即安装)。
  3. 激活该插件。

备份

  1. 导航至 Administration(管理) > Tools(工具) > Backup(备份)
  2. 核心 WordPress 表将始终被备份。从 Tables(表)部分选择一些选项。

wp-db-backup_table

  1. 选择备份选项;备份可以下载或通过电子邮件发送。
  2. 最后,点击 Backup Now!(立即备份)按钮以实际执行备份。您还可以安排定期备份。

wp-db-backup_settings

恢复数据

创建的文件是标准 SQL 文件。如果您想了解如何上传该文件,请查看 Restoring Your Database From Backup(从备份恢复您的数据库)。

更多资源

外部资源

从备份恢复您的数据库

使用 phpMyAdmin

phpMyAdmin 是一个用于通过 Web 界面远程操作数据库的程序。一个好的托管包会包含此工具。有关备份 WordPress 数据库的信息,请查看 Backing Up Your Database(备份您的数据库)。

此处提供的信息是使用在 Unix 上运行的 phpMyAdmin 4.0.5 测试的。

以下说明将替换您当前的数据库,从而还原您的数据库到备份时的状态。

恢复过程

使用 phpMyAdmin,按照以下步骤恢复 MySQL/MariaDB 数据库。

  1. 登录 phpMyAdmin。
  2. 点击“Databases(数据库)”并选择您要导入数据的数据库。
  3. 然后您会看到该数据库中已有的表列表,或者显示没有表的屏幕。这取决于您的设置。
  4. 屏幕顶部将有一行选项卡。点击 Import(导入) 选项卡。
  5. 在下一个屏幕上将是文本文件位置框,旁边有一个名为 Browse(浏览) 的按钮。
  6. 点击 Browse(浏览)。定位存储在计算机上的备份文件。
  7. 确保在 Format(格式) 下拉菜单中选择了 SQL。
  8. 点击 Go(执行) 按钮。

现在去喝杯咖啡吧。这一步需要一些时间。最终您将看到成功屏幕。

如果您收到错误消息,最好的办法是发布到 WordPress support forums(WordPress 支持论坛) 以获取帮助。

使用 MySQL/MariaDB 命令

恢复过程包括解压缩您的归档数据库转储文件,并将其导入到您的 MySQL/MariaDB 数据库中。

假设您的备份是 .bz2 文件,是使用与 使用 MySQL/MariaDB 命令备份数据库 中给出的类似说明创建的,以下步骤将指导您恢复数据库:

  1. 解压您的 .bz2 文件:
user@linux:~/files/blog> bzip2 -d blog.bak.sql.bz2

注意:如果您的数据库备份是名为 blog.bak.sql.tar.gz 的 .tar.gz 文件,则

tar -zxvf blog.bak.sql.tar.gz

应替换上述命令。

  1. 将备份的 SQL 放回 MySQL/MariaDB:
user@linux:~/files/blog> mysql -h mysqlhostserver -u mysqlusername -p databasename < blog.bak.sql  
Enter password: (enter your mysql password)   
user@linux:~/files/blog>