title: "Backup Database" post_status: publish comment_status: open taxonomy: category: - advanced-administration-handbook post_tag: - Security - Repos - Data
备份数据库
强烈建议您定期并在升级前备份数据库。
如果出现问题,您可以从备份中恢复数据库。
注意: 以下步骤备份的是 WordPress 数据库(文章、页面、评论、设置等),但不备份您的 WordPress 文件(主题、插件、上传内容、wp-config.php 等)。要进行全站备份,请参阅 WordPress 备份和备份 WordPress 文件。
备份数据库时,通常会创建一个导出文件(例如 .sql、.gz 或 .bz2 格式)。该导出文件可以与您的文件备份一起存储,这样数据库和文件就作为一个“备份集”保存在一起,但恢复时仍需将其导入到 MySQL/MariaDB 中。
使用 cPanel X 进行备份 {#backup-using-cpanel-x}
cPanel 是许多网络主机使用的流行控制面板。其备份功能可用于备份您的 MySQL 数据库。请勿生成完整备份,因为这些备份严格用于存档目的,无法通过 cPanel 恢复。请找到“下载 MySQL 数据库备份”并点击数据库名称。一个 *.gz 文件将被下载到您的本地驱动器。
恢复时无需解压此文件。使用相同的 cPanel 程序,浏览到该 gz 文件并上传。上传完成后,浏览器底部将显示转储完成。如果您要上传到新主机,则需要重新创建数据库用户及匹配的密码。如果更改了密码,请在 wp-config.php 文件中进行相应更改。
使用 phpMyAdmin {#using-phpmyadmin}
phpMyAdmin 是用于操作数据库的程序名称。
以下信息已通过使用 phpMyAdmin 版本 4.4.13 连接运行在 Linux 上的 MySQL 版本 5.6.28 进行测试验证。
快速备份流程 {#quick-backup-process}
当您需要在不压缩的情况下备份 WordPress 数据库中的所有表时,可以使用简单方法。要恢复此备份,您的新数据库不应包含任何表。
- 登录服务器上的 phpMyAdmin
- 在左侧窗口中选择您的 WordPress 数据库。本例中数据库名为 "wp"
- 右侧窗口将显示 WordPress 数据库中的所有表。点击顶部标签页中的“导出”标签
- 确保选择“快速”选项,点击“执行”后将提示下载文件。将文件保存到计算机。根据数据库大小,此过程可能需要一些时间
自定义备份流程 {#custom-backup-process}
如需更改默认行为,请选择自定义备份。在上述步骤 4 中,选择自定义选项。详细选项将显示。
表格部分 {#the-table-section}
数据库中的所有表格均被选中。如果您有其他程序使用该数据库,请仅选择与您的 WordPress 安装对应的表格。这些表格将以 "wp_" 开头,或您在 'wp-config.php' 文件中指定的 'table_prefix' 前缀开头。
如果仅安装了 WordPress 博客,请保持原样(或点击“全选”以恢复默认选择)。
输出部分 {#the-output-section}
从压缩框中选择 'zipped' 或 'gzipped' 来压缩数据。
格式部分 {#the-format-section}
确保已选择 SQL。与 CSV 或其他数据格式不同,此选项导出一系列 SQL 命令。
在格式特定选项部分,保持选项不变。
对象创建选项部分 {#the-object-creation-options-section}
选择添加 DROP TABLE / VIEW / PROCEDURE / FUNCTION / EVENT / TRIGGER 语句。在目标数据库创建表之前,如果旧表存在,它将调用 DROP 语句删除旧表。
数据创建选项部分 {#the-data-creation-options-section}
保持选项不变。
现在点击窗口底部的“Go”,系统应会提示您下载文件。将此文件保存到您的计算机。根据数据库大小,这可能需要一些时间。
请注意 – 您尚未备份文件和文件夹(例如图像),但您的所有文章和评论现在都已安全保存。
使用原生 MySQL/MariaDB 命令 {#using-straight-mysql-mariadb-commands}
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: (输入密码)
使用 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: (输入密码)
|(管道)后面的 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 {#using-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 进行过测试验证。
备份数据库 {#backing-up-the-database}
本文假设您已安装 MySQL Workbench 并完成配置,能够本地或远程登录 MySQL 数据库服务器。如需安装说明,请参考适用于您平台的 MySQL Workbench 安装包随附文档,或查阅在线文档。
- 启动 MySQL Workbench
- 若数据库实例显示在首页,请直接点击。或通过顶部菜单选择 Database -> Connect Database,输入必要信息后点击 OK
- 在左侧窗口点击 Data Export
- 选择需要备份的 WordPress 数据库
- 在 Export Options 中指定目标目录,需确保对备份目录具有写入权限
- 点击窗口右下角的 Start Export
从备份恢复 {#restoring-from-a-backup}
- 启动 MySQL Workbench。
- 如果您的数据库实例显示在首页,请点击它。或者,点击 Database -> Connect Database,然后点击 OK。
- 在左侧窗口中点击 Data Import/Restore。
- 指定您存放备份文件的文件夹。点击 Import from Dump Project Folder 右侧的 "…",选择备份文件夹,然后点击 Open。
- 点击窗口右下角的 Start Import。数据库恢复将开始。
MySQL GUI Tools {#mysql-gui-tools}
In addition to MySQL Workbench, there are many GUI tools that let you backup (export) your database.
| Name | OS (Paid edition) | OS (Free edition) | | |---|---|---| | MySQL Workbench | Windows/Mac/Linux | Windows/Mac/Linux | See above | | EMS SQL Management Studio for MySQL | Windows | | | | Aqua Data Studio | Windows/Mac/Linux | Windows/Mac/Linux (14 days trial) | Available in 9 languages | | Navicat for MySQL | Windows/Mac/Linux | Windows/Mac/Linux (14 days trial) | Available in 8 languages | | SQLyog | Windows | | | | Toad for MySQL | | Windows | | | HeidiSQL | | Windows | | | Sequel Pro | Mac | CocoaMySQL successor | | | Querious | | Mac | |
使用 WordPress 数据库备份插件 {#using-wordpress-database-backup-plugin}
您可以在 WordPress 插件目录中找到能帮助您备份数据库的插件。
以下说明适用于名为 WP-DB-Backup: 的插件。
安装 {#installation}
备份 {#backing-up}
-
选择备份选项;备份可以下载或通过电子邮件发送。
-
最后,点击“立即备份!”按钮以实际执行备份。您也可以安排定期备份。
恢复数据 {#restoring-the-data}
生成的文件是一个标准的 SQL 文件。如需了解如何上传该文件,请参阅从备份恢复数据库。
更多资源 {#more-resources}
外部资源 {#external-resources}
从备份恢复数据库
使用 phpMyAdmin {#using-phpmyadmin}
phpMyAdmin 是一款通过网页界面远程操作数据库的程序。优质的主机套餐通常会包含此工具。有关备份 WordPress 数据库的信息,请参阅备份数据库。
本文信息已通过运行在 Unix 系统上的 phpMyAdmin 4.0.5 版本测试。
以下操作将替换您当前的数据库为备份版本,使您的数据库回退到备份时的状态。
恢复流程 {#restore-process}
使用 phpMyAdmin,请按照以下步骤恢复 MySQL/MariaDB 数据库。
- 登录 phpMyAdmin。
- 点击 "Databases",然后选择您要将数据导入的数据库。
- 随后您将看到该数据库中已有的表列表,或者一个显示没有表存在的界面。这取决于您的设置。
- 屏幕顶部会有一排选项卡。点击 Import 选项卡。
- 在下一个屏幕上,会有一个文本文件位置框,旁边有一个名为 Browse 的按钮。
- 点击 Browse。找到存储在您计算机上的备份文件。
- 确保在 Format 下拉菜单中选择了 SQL。
- 点击 Go 按钮。
现在去喝杯咖啡。这一步需要一些时间。最终您会看到一个成功界面。
如果出现错误信息,最好的办法是到 WordPress 支持论坛发帖寻求帮助。
Using MySQL/MariaDB Commands {#using-mysql-mariadb-commands}
The restore process consists of unarchiving your archived database dump, and importing it into your MySQL/MariaDB database.
Assuming your backup is a .bz2 file, created using instructions similar to those given for Backing up your database using MySQL/MariaDB commands, the following steps will guide you through restoring your database:
- Unzip your
.bz2file:
user@linux:~/files/blog> bzip2 -d blog.bak.sql.bz2
Note: If your database backup was a .tar.gz file called blog.bak.sql.tar.gz, then
tar -zxvf blog.bak.sql.tar.gz
is the command that should be used instead of the above.
- Put the backed-up SQL back into 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>













