WordPress.org

Ready to get started?Download WordPress

Codex

Attention Interested in functions, hooks, classes, or methods? Check out the new WordPress Code Reference!

Backing Up Your Database

It is strongly recommended that you backup your database at regular intervals and before an upgrade.

Restoring your database from backup is then possible if something goes wrong.

Backup using cPanel X

cPanel is a popular control panel used by many web host. The backup feature can be used to backup your MySql database. Do not generate a full backup, as these are strictly for archival purposes and cannot be restored via cPanel. Look for 'Download a MySQL Database Backup' and click the name of the database. A *.gz file will be downloaded to your local drive.

There is no need to unzip this file to restore it. Using the same cPanel program, browse to the gz file and upload it. Once the upload is complete, the bottom of the browser will indicate dump complete. If you are uploading to a new host, you will need to recreate the database user along with the matching password. If you change the password, make the corresponding change in the wp-config.php file.

Using phpMyAdmin

phpMyAdmin is the name of the program used to manipulate your database.

Information below has been tried and tested using phpMyAdmin versions 2.5.3, 2.5.7-pl1, and 2.6.1-pl3 running on Unix.

Detailed options are listed below, though in most cases you will be fine with the default export options.

Backup Process with phpMyAdmin

  1. Log into phpMyAdmin on your server

  2. From the main login screen, select 'Databases'
  3. (You may not need to do this step)

    podz backup 1.jpg

  4. Now click the name of your database - or your WordPress database if you have several databases.
  5. (Your screen may look slightly different, depending on the version.)

    podz backup 2.jpg

  6. The next screen will show you all the tables inside your WordPress database.
    Ignore those, and click the 'Export' tab on the top set of tabs.
  7. podz backup 3.jpg

  8. Look at the left box at the top of the Export section. All the tables in the database you selected are in that box.
  9. phpMyAdmin backup export.png

    • If you have other programs that use the database, then choose only those tables that correspond to your wordpress install. They will be the ones with that start with "wp_" or whatever 'table_prefix' you specified in your 'wp-config.php' file.
    • If you only have your WordPress blog installed, leave it as is (or click 'Select All' if you changed the selection)
    • Ensure that the SQL radio button is selected.

    Phpmyadmin bentrem.jpg

  10. The SQL section
  11. Tick the following boxes:
    • 'Structure'
    • 'Add DROP TABLE / VIEW / PROCEDURE / FUNCTION'
    • 'Add IF NOT EXISTS'
    • 'Add AUTO_INCREMENT' and
    • 'Enclose table and field names with backquotes'

  12. The DATA section
  13. It doesn't matter too much what you check here. So long as you check the DATA box itself, the Complete inserts and Extended Inserts are mostly cosmetic changes to the output style, though Extended Inserts can help if you are having issues with the file size.

    backup4-1.png


  14. Tick the 'Save as file' option, and leave the template name as is.
  15. podz backup 5.jpg

  16. Now click 'Go' and you should be prompted for a file to download. Save the file to your computer.
    Depending on the database size, this may take a few moments.

  17. You have now backed up your database.
  18. If you wanted, you could download a backup in each of the compression formats. Your choice. For example: None and "zipped": podz backup 6.gif

    Remember - you have NOT backed up the files and folders - such as images - but all your posts and comments are now safe.

Using Straight MySQL Commands

phpMyAdmin can not handle large databases so using straight MySQL code will help.

1. Change your directory to the directory you want to dump things to:

user@linux:~> cd files/blog

2. Use mysqldump to dump all database tables. To dump only certain tables from the database, give their names at the place shown by (tablename tablename tablename), and omit the parentheses ( ) in any case. (For help, try: man mysqldump.):

user@linux:~/files/blog> mysqldump --add-drop-table -h mysqlhostserver
 -u mysqlusername -p databasename (tablename tablename tablename) | bzip2
 -c > blog.bak.sql.bz2

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

Enter password: my-password
user@linux~/files/blog>

The bzip2 -c after the | (pipe) means the backup is compressed on the fly, and the > blog.bak.sql.bz2 sends the bzip output to a file named blog.bak.sql.bz2. It does in one line the same thing that these two commands do:

mysqldump --add-drop-table -h db01.example.net -u dbocodex -p dbwp > blog.bak.sql
bzip2 blog.bak.sql

Using MySQL Workbench

MySQL Workbench (formerly known as MySQL Administrator) is a program for performing administrative operations, such as configuring your MySQL server, monitoring its status and performance, starting and stopping it, managing users and connections, performing backups, restoring backups and a number of other administrative tasks.

You can perform most of those tasks using a command line interface such as that provided by mysqladmin or mysql, but MySQL Workbench is advantageous in the following respects:

  • Its graphical user interface makes it more intuitive to use.
  • It provides a better overview of the settings that are crucial for the performance, reliability, and security of your MySQL servers.
  • It displays performance indicators graphically, thus making it easier to determine and tune server settings.
  • It is available for Linux, Windows and MacOS X, and allows a remote client to backup the database across platforms. As long as you have access to the MySQL databases on the remote server, you can backup your data to wherever you have write access.
  • There is no limit to the size of the database to be backed up as there is with phpMyAdmin.

Note: The instruction below was written for older version (MySQL Administrator).

Backing Up the Database

This assumes you have already installed MySQL Admin and set it up so that you can login to the MySQL Database Server either locally or remotely. Refer to the documentation that comes with the installation package of MySQL Admin for your platform for installation instructions.

  1. Open the MySQL Admin client and login as you had previously set up to do.
  2. From the icon menu on the left hand side of the client window select Backup.
  3. If you have not already created a Backup Project, do this now by clicking on the "New Project" button at the lower part of the window and type in a name for the Backup Project where prompted.
  4. Select one or more databases that you want to Backup (in the MySQL Admin client these are called a "Schema" (pl. "Schemata")). Add them to the Backup Content window on the right using the right-pointing arrow button.
  5. When you have selected the Schema(ta), you can save the Backup Project. Or you may simply choose to Backup Now using the button on the lower right of the window.
  6. A dialogue will come up asking you where to put the Backup. Enter the pathname or browse to the location using the dialogue.
  7. Assuming all is correct (and you have write permissions in the directory to which you are writing the Backup), the backup will complete shortly.

Restoring From a Backup

  1. Open the MySQL Admin client and login as you had previously set up to do.
  2. From the icon menu on the left hand side of the client window select Restore.
  3. Click the "Open Backup File" button on the lower right of the window.
  4. Type in or browse to the Schema(ta) backup file and select. Click "Open".
  5. The Target Schema(ta) will most likely be the "Original Location", or you may choose an alternate location using the drop-down menu.
  6. Click the "Start Restore" button on the lower right of the window. The database restore will commence.

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) Notes
MySQL Workbench Windows/Mac/Linux Windows/Mac/Linux See above
EMS SQL Management Studio for MySQL Windows -
Aqua Data Studio - Windows/Mac/Linux Available in 21 languages
Navicat for MySQL Windows/Mac/Linux Windows/Mac/Linux (Lite) Available in 8 languages
SQLyog Windows -
Toad for MySQL - Windows
HeidiSQL - Windows
Sequel Pro - Mac CocoaMySQL successor
Querious - Mac

Using WordPress Database Backup Plugin

Austin Matzko maintains a WordPress plugin originally created by Skippy called WordPress Database Backup (WP-DB-Backup). It was bundled with WordPress 2.0 but is no longer included with WordPress 2.1.

Installation

  1. Search "WP-DB-Backup" on Administration > Plugins Panel > Add New.
  2. Activate the plugin.
  3. The plugin will attempt to create a directory /wp-content/backup-*/ inside your WordPress directory. You may need to make /wp-content writable (at least temporarily) for it to create this directory.

Backing up

  1. Navigate to Administration > Tools > Backup Panel
  2. Select any tables, in addition to the core WordPress tables, that should be backed-up.
  3. Select the Backup Options; the backup can be saved on the server, downloaded, or emailed.
  4. Finally, click on the Backup button to actually perform the backup. You can also schedule regular backups.

Restoring the Data

The file created is a standard SQL file. If you want information about how to upload that file, look at Restoring Your Database From Backup.

Resources and Backup Plugins