Here are the detailed steps how to successfully move a complete Drupal installation from one host to another.
The documentation on drupal.org is not necessarily clear, here are the exact steps how to move a complete site including your drupal mysql database.
Migrating Drupal On your OLD host:
1) Backup your whole home directory from your ftp access using an ftp client like filezilla.
Make a folder on your local harddisk and download the complete directory to that local folder.
2) Backup your mysql database on your old host using phpadmin, select your mysql database, usually something like “name_drpl1”. Select all fields, click “export” and save the database to your local harddisk. Leave default options enabled. You will receive a file similar to “name_drpl1.sql”.
This is your mysql database
On your NEW host:
1) Upload your folder with the complete drupal installation to your home-directory.
2) Once done, go to phpadmin on the new host, create a new mysql database, example “name_drpl1” and create a new mysql user. Create a password for this new mysql user, click “assign all privileges” to this user and assign the user to the new database.
You now should have a new mysql database on the new host with a mysql user, eg. “name_drpl1” as database name and “name_username” as database user name.
3) Import (upload) the database (which you exported from the old host earlier) with phpadmin to the new database. This might take a minute.
4) If needed edit the file [drupal home]/sites/default/settings.php and edit at the section where you enter the database, location, username and password. You CAN enter the password either encrypted or not encrypted there.
5) Chmod your “files” folder so it is writeable using your ftp client (filezilla), chmod to 777
6) Double check your .htaccess and [drupal home] /sites/default/settings.php and make changes in case they are needed.
Change nameserves on your domain host and let them point to your new host’s nameservers.
Enter the new nameservers in your control panel where your domain names are hosted, overwriting the old ones.
After some time (sometimes a day or two) your domain should point to the new host and drupal should be up and running on the new host.