What's money? A man is a success if he gets up in the morning and goes to bed at night and in between does what he wants to do.
Bob Dylan

Where you need to transfer a web site between hosts not using the same control panel, you may need to set up the new account (domains, databases, mailboxes etc) and then copy files and databases between hosts. Ideally you’ll have secure shell (ssh) access to both old and new accounts and you can transfer your content using SSH commands moving data directly from one server to the other. Where you don’t have this access you may be forced to transfer files using FTP and your control panel. These are some notes on what to do in this case:

To transfer files from old to new you will need an FTP client program. For MS Windows users I recommend FileZilla. Linux users will find the built-in Konqueror file browser just as capable. Transferring web content is simple – just log into the old hosting account and download everything from the web directory (typically public_html or www). Then disconnect, log into the new account and upload everything. Unfortunately, unless your web site is small or you have a very fast internet connection this process can be tedious – go and have a beer or three!

To backup a database on the old host, use the database backup facility provided in the control panel or in phpMyAdmin. Either of these will give you a compressed text file equivalent to the output of the “mysqldump” command. You will need to download this file from the old host to your computer and then upload it to the new host.

Before restoring a database backup you will need to create the database and the database user on the new account, through the control panel. If you’re using CPanel note that this is a 3-stage process: Create database, create user, give user access to database – people often miss the final step).

Small databases can usually be uploaded to phpMyAdmin on the new host and restored automatically, but this process will fail for large files, especially on slow connections. If this happens then use your FTP client to upload the file to your new account and ask your host to restore the database for you (if they won’t give you SSH access, it’s the least they can do!)

If both hosts are using the same log-analysis software (eg. the popular AWStats perl program) you may be able to transfer your historical visitor data files in the same way. Look for .html files in a directory called “stats” or “awstats” or ask your host for the correct location.Don’t attempt to transfer mailboxes in this way – mail may be held in different file formats and file ownership / permissions cannot be properly set using FTP. If you need to transfer mail, use an IMAP-capable e-mail client.

If you’re not already using IMAP then you probably don’t need to transfer mail at all – just set up the new mailboxes on the new account and use your mail client to download messages from both new and old mailboxes.