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. 

NOTE: Below steps backup core WordPress database that include all your posts, pages and comments, but DO NOT backup the files and folders such as images, theme files on the server. For whole WordPress site backup, refer WordPress Backups.

Backup using cPanel X Backup using cPanel X

cPanel is a popular control panel used by many web hosts. 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.

Top ↑

Using phpMyAdmin Using phpMyAdmin

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

Information below has been tried and tested using phpMyAdmin version 4.4.13 connects to MySQL version 5.6.28 running on Linux.

phpmyadmin_top

Quick backup process Quick backup process

When you backup all tables in the WordPress database without compression, you can use simple method. To restore this backup, your new database should not have any tables.

  1. Log into phpMyAdmin on your server
  2. From the left side window, select your WordPress database. In this example, the name of database is “wp”.
  3. The right side window will show you all the tables inside your WordPress database. Click the ‘Export’ tab on the top set of tabs.

4. Ensure that the Quick option is selected, and 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.

phpmyadmin_quick_export

Top ↑

Custom backup process Custom backup process

If you want to change default behavior, select Custom backup.  In above Step 4, select Custom option. Detailed options are displayed.

phpmyadmin_custom_export

The Table section The Table section

All the tables in the database are selected. 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)

Top ↑

The Output section The Output section

Select ‘zipped’ or ‘gzipped’ from Compression box to compress the data.

phpmyadmin_export_output

Top ↑

The Format section The Format section

Ensure that the SQL is selected. Unlike CSV or other data formats, this option exports a sequence of SQL commands.

In the Format-specific options section, leave options as they are.

phpmyadmin_export_formatspecific

Top ↑

The Object creation options section The Object creation options section

Select Add DROP TABLE / VIEW / PROCEDURE / FUNCTION / EVENT / TRIGGER statement. Before table creation on target database, it will call DROP statement to delete the old existing table if it exist.

phpmyadmin_export_object

Top ↑

The Data creation options section The Data creation options section

Leave options as they are.

phpmyadmin_export_data

Now click ‘Go’ at the bottom of the window 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.

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

Top ↑

Using Straight MySQL/MariaDB Commands Using Straight MySQL/MariaDB Commands

phpMyAdmin cannot handle large databases so using straight MySQL/MariaDB code will help.

Change your directory to the directory you want to export backup to:

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

Use the mysqldump command with your MySQL server name, user name and database name. It prompts you to input password (For help, try: man mysqldump).

To backup all database tables

mysqldump --add-drop-table -h mysql_hostserver -u mysql_username -p mysql_databasename´╗┐

To backup only certain tables from the database

mysqldump --add-drop-table -h mysql_hostserver -u mysql_username -p mysql_databasename´╗┐

Example:

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

Use bzip2 to compress the backup file

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

You can do the same thing that above two commands do in one line:

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)

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.

Despite bzip2 being able to compress most files more effectively than the older compression algorithms (.Z, .zip, .gz), it is considerably slower (compression and decompression). If you have a large database to backup, gzip is a faster option to use.

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

Top ↑

Using MySQL Workbench Using MySQL Workbench

MySQL Workbench (formerly known as My SQL 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.

Information below has been tried and tested using MySQL Workbench version 6.3.6 connects to MySQL version 5.6.28 running on Linux.

mysql_workbench_top

Top ↑

Backing Up the Database Backing Up the Database

This assumes you have already installed MySQL Workbench 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 Workbench for your platform for installation instructions or online document.

  1. Launch the MySQL Workbench
  2. Click your database instance if it is displayed on the top page. Or, Click Database -> Connect Database from top menu, enter required information and Click OK.
  3. Click Data Export in left side window.
mysql_workbench_export
  1. Select your WordPress databases that you want to backup.
  2. Specify target directory on Export Options. You need write permissions in the directory to which you are writing the backup
  3. Click Start Export on the lower right of the window.
mysql_workbench_export2

Top ↑

Restoring From a Backup Restoring From a Backup

  1. Launch the MySQL Workbench
  2. Click your database instance if it is displayed on the top page. Or, Click Database -> Connect Database, and Click OK.
  3. Click Data Import/Restore in left side window.
  4. Specify folder where you have backup files. Click “…” at the right of Import from Dump Project Folder, select backup folder, and click Open
  5. Click Start Import on the lower right of the window. The database restore will commence.
mysql_workbench_import

Top ↑

MySQL GUI Tools MySQL GUI Tools

In addition to MySQL Workbench, there are many GUI tools that let you backup (export) your database.

NameOS (Paid edition)OS (Free edition)
MySQL WorkbenchWindows/Mac/LinuxWindows/Mac/LinuxSee above
EMS SQL Management Studio for MySQLWindows
Aqua Data StudioWindows/Mac/LinuxWindows/Mac/Linux (14 days trial)Available in 9 languages
Navicat for MySQLWindows/Mac/LinuxWindows/Mac/Linux (14 days trial)Available in 8 languages
SQLyogWindows
Toad for MySQLWindows
HeidiSQLWindows
Sequel ProMacCocoaMySQL successor
QueriousMac

Top ↑

Using WordPress Database Backup Plugin Using WordPress Database Backup Plugin

You can find plugins that can help you back up your database in the WordPress Plugin Directory.

The instructions below are for the plugin called WP-DB-Backup:

Top ↑

Installation Installation

  1. Search for “WP-DB-Backup” on Administration > Plugins > Add New.
  2. Click Install Now.
  3. Activate the plugin.

Top ↑

Backing up Backing up

  1. Navigate to Administration > Tools > Backup
  2. Core WordPress tables will always be backed up. Select some options from Tables section.
wp-db-backup_table

3. Select the Backup Options; the backup can be downloaded, or emailed.

4. Finally, click on the Backup Now! button to actually perform the backup. You can also schedule regular backups.

wp-db-backup_settings

Top ↑

Restoring the Data 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.

Top ↑

More Resources More Resources

Top ↑

External Resources External Resources