This article is part of a series of guest posts by Garikai Dzoma on helping new users migrate successfully to the Ubuntu operating system. Garikai started using Ubuntu Linux in 2007 and is an active member of the Zimbabwe Ubuntu LoCo team.
I recently wanted to move a database from one computer to another. Fortunately I found a welcome guide at linuxjournal.com. Moving the files is not really difficult, you can use FTP. Moving the database is a bit more challenging however.
If you have shell access, it’s a pretty simple process. On the old server, type:
mysqldump -u username -p databasename > databasebackup.sql
You’ll be asked for the password assigned to “username”, and then mysqldump will create a file that contains all the information needed to restore your database. One thing to note, however, is that going between different versions of mysql can be problematic. That’s where the –compatible flag is handy. You can specify what type of database software you’ll be importing to, and mysqldump will (try) to give you a compatible file. Some options are mysql323, postgresql, mysql40, etc. Check the man page for more options and explanations about what they all do.
To restore your database file on the new server, it’s just as easy. Simply type:
mysql -u username -p newdatabasename < databasebackup.sql
That should transfer your data simply and easily. If you get errors, you might have to check that –compatible flag, or even do some more work to your database in order to make it compatible.
The moral of the story, like most, is that backups are VERY important! It’s great to know the tools to make a dump of your mysql database, but if something is corrupt, you’ll want a backup rather than a fresh dump. If you have any other tips for moving databases from one server to another, feel free to leave them in the comments.