Method tested only on wp 3.2.1
Check http://www.jealousbrother.com/blog/transfer-wordpress-blog-serverhost/
Tools:
- PhpMyAdmin
- FTP client (I use fireftp for firefox) or your hosting’s Cpanel file manager
- WordPress plugin: Search and Replace
- notepad for editing
Steps A (for original hosting or hosting 1)
- Turn Off all and any caching plugins (like Total Cache etc.)
- In PhpMyAdmin select database and all tables and export/download it to your desktop as SQL.
- In your FTP, download contents of wp-content. Alternatively use Cpanel file explorer to copy directly (much faster)
- In your FTP, download original wp-config.php to your desktop (you will modify this and replace new)
Steps B (mainly for hosting 2)
- Install same version of wordpress in the new host
- use same settings as much as possible like password and user
- use your FTP client to upload everything from wp-content from hosting 1 to same folder of hosting 2 or better if you used Cpanel file explorer
- In phpmyadmin of hosting 2, drop all tables and import downloaded database from hosting 1
- Modify basic info wp-config.php from hosting 1 and upload/replace new wp-config.php from new installation
- access phpmyadmin of hosting 2, wp-options and change “home” and “url” to match new address of wordpress
- when importing config make sure prefix and all other info are same as orig source
- Final step save once again the permalinks!
*always refresh permalinks after everything