I’ve seen a bunch of ways of doing this, but here are a couple:
-
Use a plugin, like BackupBuddy (paid): http://pluginbuddy.com/purchase/backupbuddy/
-
Export your whole DB using phpMyAdmin and run a search-and-replace tool that properly deals with the serialized data, e.g. https://interconnectit.com/products/search-and-replace-for-wordpress-databases/ (I use this, and it works just fine). Then on the live server, create an empty DB and import this modified sql dump.
There was also a GSOC project this year for moving sites, called WordPress Move. Could work, not sure though: http://wordpress.org/extend/plugins/wordpress-move/