MySQL/porting/data

from HTYP, the free directory anyone can edit if they can prove to me that they're not a spambot
< MySQL
Revision as of 14:20, 23 August 2006 by Woozle (talk | contribs) (navbar tweaks, post-move)
Jump to navigation Jump to search

navbar

Computing: Software: MediaWiki: backing up

Overview

Topic: How to back up and restore a MediaWiki database. MediaWiki databases use MySQL.

There are several techniques for doing this.

Using phpmyadmin (web-based)

(by Aero)

Backing up

  1. Make sure you've got PHPMyAdmin running and that's all happy. I won't cover this part here as it varies with your set up.
  2. Login and choose Export from the main page
  3. Leave most of the default options. Specifically,
    • Format: SQL
    • Select the database(s) you want in the listbox
    • etc.
  4. Checkmark 'Add DROP TABLE'. This will make sure that when you restore from a backup, it will delete existing tables before restoring from the backed up ones.
  5. Checkmark 'Save to file' at the bottom, or it will just dump it to your browser window, and that's no fun.
    • You probably also want to use compression. These won't be huge files, but a 1.5mb database compresses to about 150kb. So, y'know, whatever. Wiggy recommends BZIP.
  6. Click Go.

Restoring from backup

I'm writing this from memory, so I might be wrong, but I think it's right.

  1. Click Databases from the PHPMyAdmin main page
  2. Click the name of your databse (it should already exist; have you [re]installed MediaWiki yet? Do that first.)
  3. Click the SQL tab
  4. Where it says Location of textfile:, browse to your latest backup, then click Go.

Notes

Some installations of phpmyadmin may have an upper size-limit on imports – e.g. at l48.net it's 2 MB, which basically means I can't use it to restore any of my wikis.

Using mysql-admin (GUI utility)

Backing up

  1. Choose a place on your hard drive for storing the file; create any folders needed.
  2. Run mysql-admin (this can be done from the command line)
  3. Connect to mysql. You'll need the server address, a username with read permissions, and the password for that user.
    • Note: mysql-admin seems to have trouble actually using passwords you've stored, so you may have to type in the password each time. Hopefully they will fix this soon.
    • Another note: the current version of mysql-admin doesn't like connecting to mysql versions prior to 4.0, but it did connect and backup my v3.23. It appears prone to sudden crashing on certain operations, so avoid poking around in the menu while backing up or restoring.
  4. Press the "backup" icon/button on the left.
  5. Check the 'Add DROP TABLE' box on the "Output File Options" box on the "Advanced Options" tab, as with the phpmyadmin backup.
  6. Steps from that point on are pretty intuitive, except for the scheduler (which still has me confused). Apparently mysql-admin can set itself up to do backups automatically, using the cron scheduler, but this hasn't been working; at first glance, it looks like it could be a permissions problem. (If you retrieve email from your localhost POP3 server, you will see error messages from the cron scheduler if it couldn't run something it was supposed to run.)
  7. The first time through, you will probably want to save the backup configuration to a Backup Project, for quick reuse later. I had trouble once, however, with the "Backup Now" button greying out after doing this; I'm not sure what caused it.

Restoring

There's a "restore backup" button right under the "backup" button, and I presume the process is also fairly intuitive. Unfortunately, on my system (Ubuntu 4.x), pressing this button instantly causes mysql-admin to close, with no warning (presumably a crash/bug). This may be a problem with Ubuntu, as I have had similar problems with other applications that worked fine in other versions of Linux (I have not tried testing mysql-admin in other Linux distros). --Woozle 14:04, 8 May 2006 (EDT)

Using mysql (command-line)

If you are restoring to a different database name (as might happen if you were moving the db to a new server), you will need to edit the .sql file to use the appropriate database name in the line which begins "CREATE DATABASE" and the "USE" line following it. If you know the database has already been created, you can just delete the CREATE DATABASE line.

You might also want to verify that the mysql utility connects successfully before you try the import:

mysql -hserver -uusername -ppassword

If that works, then the full command to create a database from a .sql file is:

mysql -hserver -uusername -ppassword < path/to/backup/file.sql

Note that the path is relative to the system on which you are running the mysql utility, not the system running the mysql server (mysqld). Note also that this technique doesn't tell you anything until it finishes processing the .sql file.

Related Resources