The following procedure describes the basic needs for moving your magento-shop to another server. There might be additional things to consider (changing domains, DNS, PHP-Configuration, tools & programms on your server) which need to take care of on your own.
1. Backup files in your Magento directory on your old server:
You might empty your var/cache, var/session, var/report and var/log directory first to save space and speed up the backup
2. Create a database dump on your old server:
Use phpMyAdmin, Chive or via console with mysqldump, n98-magerun
3. Set up directory structure for files and create database + user on your new server
4. Move files and database dump to your new server: via FTP, SSH,...
5. Extract file-backup to your new magento directory
6. Check and set file-permissions
Usually 644 for files and 755 for folders.
See also this question for more information: What permissions should I give /var and /media?What permissions should I give /var and /media?
7. Import database-dump on your new server:
Use phpMyAdmin, Chive or via console with mysql, n98-magerun
8. Update new database-settings in app/etc/local.xml
9. Update URLs in core_config_data:
You can edit the base_url via Web-Frontend (phpMyAdmin, Chive,...) or use these SQL-statements. You might need to edit the urls for your stores also.
Look for path ="web/unsecure/base_url"
and path="web/secure/base_url"
in the core_config_data
table.
10. Empty var/cache, var/session, var/report, var/log (if you did not do that before you created the backup on the old server)
11. Reindex your data: catalog url rewrites
12. Enjoy your beer!