Manual:Restoring a wiki from backup

One should backup one's wiki regularly, even if one never needs to restore it: backups provide peace of mind. However, a backup is useless if one cannot restore, and practice restoring a backup prevents later anguish. Hence, these instructions.

Versions and upgrading
The instructions on this page should apply more or less evenly to any given version of MediaWiki. However, avoid upgrading MediaWiki or its database schema prior to restoring! Particularly, avoid restoring a database backup from an older version of the software into a newer version; this will not work.

Overview

 * 1) Re-create the database, user and permissions
 * 2) Import the database backup
 * 3) Import the MediaWiki files
 * 4) Check the configuration file
 * 5) Test

Re-create the database, user and permissions
On the server on which you are restoring MediaWiki, ensure you have


 * 1) a correctly-working instance of MySQL
 * 2) a user with appropriate permissions

If you are restoring from backup due to database corruption, consider reinstalling MySQL! Once MySQL is working properly, create a new MySQL database and grant your user account permissions on the database. SELECT, INSERT, UPDATE and DELETE permissions should suffice. You may need to consult the MySQL documentation, your hosting provider's control panel documentation, or the documentation of any other utilities you are using for information on how to do this.

Note: It doesn't matter if the database doesn't have the same name; indeed, in a commercial hosting environment, where database names are usually prefixed with a hosting account username, a different database name is almost guaranteed. In addition, the username can differ, as can that user's password. You will have to adjust the LocalSettings.php file on the new location accordingly.

Import the database backup
Next, import your database backup. This will create the tables in the database and populate them with data. Following this point, you will restored your database. Again, according to the means you are using to manage your MySQL databases, the process for this varies. You may need to upload the .sql script file from earlier to your server via FTP, or this may be done for you by the utilities you are using. Consult the documentation to find out how it's done.

After importing, which takes a variable amount of time, depending upon the number of pages, users, edits, etc. in your wiki, you should have a few dozen tables in the new database.

Possible methods
Possible methods for performing the import include:


 * mysqldump
 * phpMyAdmin or a similar tool
 * The command-line console, mysql
 * MySQL Administrator tool

Import the MediaWiki files
Next, restore your backup of the MediaWiki filesystem: this is the final "large" step in the restore process. If you followed the backup manual instructions, and backed up the entire directory, this will include the images and extensions directories, plus custom skins, etc. and the configuration file. If you backed up only portions of the directory, e.g. images, extensions, etc. then you will need to first upload/copy a fresh install of the MediaWiki files, then transfer the backed-up directories and files into the correct locations in the new filesystem.

Check the configuration file
The final task involves verification of, and possibly modifying, the LocalSettings.php file. If you are restoring onto the same server from which you backed up, you probably need not change anything. If you are restoring onto a new server (i.e., if you are moving or duplicating the MediaWiki), certain entries will almost undoubtedly require changing, and you may need to change the database connection information as well.

Check the following configuration options:

You might also need to check the paths to diff3, ImageMagick, etc.

Test
At this point, attempt to access the wiki on the new server and use it. Log in as a sysop and a regular user and check that viewing, creating and editing pages and uploading files still works. You will need to fix any problems reported either by PHP or MediaWiki itself.